RSA pkcs1与pkcs8 java获取私钥
RSA pkcs1与pkcs8 java获取私钥
目录
RSA pkcs1与pkcs8 java获取私钥
获取秘钥
获取pkcs1 格式秘钥
获取pkcs8格式秘钥
读取秘钥信息
解密
获取秘钥
maven依赖
<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk16</artifactId><version>1.46</version></dependency>
获取pkcs1 格式秘钥
public static PrivateKey getPKCS1Key(byte[] privateKeyBytes ) throws Exception{// 取得私钥 for PKCS#1RSAPrivateKeyStructure asn1PrivKey = new RSAPrivateKeyStructure((ASN1Sequence) ASN1Sequence.fromByteArray(privateKeyBytes));RSAPrivateKeySpec rsaPrivKeySpec = new RSAPrivateKeySpec(asn1PrivKey.getModulus(), asn1PrivKey.getPrivateExponent());KeyFactory keyFactory= KeyFactory.getInstance("RSA");PrivateKey priKey= keyFactory.generatePrivate(rsaPrivKeySpec);return priKey;}
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCBvjdB7jtFh1t0Y+swHSqs9Kkii3ydKXPtvixVm88vxFY3rWha
UFCXV/RCYo1PEaATfkjxEllH4+BeMgROgK52muv/xMsl5tvXNPwGbsDH20MhZtkD
blbGA4q26HthMRuKToG2TcufqPmvkR18J6x8KtnKwPX9Wvi0DZdJVE7FFQIDAQAB
AoGAD7S0oL0TnMOZfRn5Zw4o094cOWvUTnwtpfqPCF//sUMdwsixqLkvQFrr3Ttr
6sXx8Fopv1Ee0LaTuyNn5Q7rz5AAauDHQBTFLInU01G3dls/aeTEF3ziJLcHIBg/
9W/AAHyHGG1NdhDlIzISl75tViK2d57hAWHu8TC9QeNf7yMCQQDYwneTwI8EtuuN
Z/6T3ZGj2sZPjjSF6Vjz41g9/+RPawpv1qeYddo04f0fOyWdpYZxXTF863NgIr5j
IJnXKxJnAkEAmTsKmOidj+7DtNQor8SioYNT10nlgzrkC3Kr/BIkZTd8aog90sBL
AAyojEENHLdJntBOz9K03cSMA4qwDJwXIwJANyou0oyUGWgQRLmtwaYHFcNs6vxP
A7GicNdwMr84NLoSOupPVu7PbNwC1nrwFNH2iE1mddtaTqIpAANhA7CziwJBAIQc
9KkbvmXPzesGFUJevn2VFl+Dth/sUZxRNVmzZq/iJCJR70PbSY70Wwn6OEzu9sm3
/ouOtySSBsoy9FEa75MCQG0pdaiq66/yrkZxv+EZI8J+2K08RERS15Eg8gIz08S2
YN052V2/aYIL10I3Gczr+maGP+5SCVVsDf6Sh2zRi5g=
-----END RSA PRIVATE KEY-----
获取pkcs8格式秘钥
public static PrivateKey getPKCS8Key(byte[] privateKeyBytes ) throws Exception{// 取得私钥 for PKCS#8PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);KeyFactory keyFactory = KeyFactory.getInstance("RSA");PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);return priKey;}
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANl2Zy1NTndVMeHH
5bhswu1zGrYrutc/fod3ajOlTwa7d5ZBR7XjieKj7go/6Q8AWS9k5Oes1SGEdcB8
jX62MrXsSrHXv/6mDNoEN9+vA8stLy+uOWW3LGCPjMqugbT0+7q3evX0VW/LS1/v
WIAWAqcodlW6unTbDh4g/Ul7TsgPAgMBAAECgYAg1U64uU5amCNi6pKVqN45icKD
tNCOBUkuXOpNB+2Jn65rokmYfdVowcWECKhAmpXcoQgqrp6zY9N/j46xjgLTy3Og
rERBYHJqotuWXRW1fjcwOe8VGN+LNHgddD6kaygiC+Aw9G2hcpYEylZMLAdObUPb
oOB9ADHFY1QG6aeEYQJBAP9eJ9HI6flQ0M7M2woEDQkI9hv4YLeckqNpE3uGgukM
GwmRbmmlpiDq9qeTZA0NBMBE8voMorK/GDJ5SRBc+78CQQDaADlo87NnsDyBSzdV
6FBep0LhxoQ12YlcuYO0i0Hv4HvLjhPagu31NhNTVRJ0PKPrLHkPlaJUOAIZoghK
fYexAkAMLzrpKJP5YGDGLUIaRT01/CZ6CSzcNe1NPLtAPpfKdNhpaXYCNnQpx+xC
7KZudPuQDPom8illK/cEmYLh8/3TAkEAmf3Kj/6F3lq5gsN1BTQjgZk5P28ReVB/
HYbWKDSukRnLmNB16cbO/IYERLs1W/Jx/+/cXEvg7QjbQuwYWzYtIQJACHdgJjLs
oe8oBSp/rCOlZQtxvNPwyeZAV41QiuylOJs/tXPhOxCkxYh7U7JDWFPv4bYkp7Jy
LcKAI63M4NvGzg==
-----END PRIVATE KEY-----
读取秘钥信息
BASE64Decoder base64decoder = new BASE64Decoder();BufferedReader br8 = new BufferedReader(new FileReader("E:\\1.txt"));String s = br8.readLine();String str = "";s = br8.readLine();while (s.charAt(0)!= '-'){str += s + "\r";s = br8.readLine();}byte[] buffer8 =base64decoder.decodeBuffer(str) ;br8.close();
解密
public static String decrypt(PrivateKey Key,String content ) throws Exception {RSAPrivateKey privateKey = (RSAPrivateKey) Key;Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.DECRYPT_MODE, privateKey);System.out.println("provider: {}" + cipher.getProvider().getClass().getName());byte[] data = Base64.decodeBase64(content.getBytes());int inputLength = data.length;ByteArrayOutputStream out = new ByteArrayOutputStream();int offset = 0;byte[] cache;int i = 0;byte[] tmp;while (inputLength - offset > 0) {if (inputLength - offset > 256) {cache = cipher.doFinal(data, offset, 256);} else {cache = cipher.doFinal(data, offset, inputLength - offset);}out.write(cache);i++;offset = i * 256;}byte[] decryptedData = out.toByteArray();out.close();return new String(decryptedData);}
RSA pkcs1与pkcs8 java获取私钥相关推荐
- RSA PKCS1和PKCS8的ASN格式
最近要和支付宝支付做个对接,然后发现自己对RSA一无所知....补知识点吧.... 嗯,百度了一下Sha256withRSA,出现了一大堆文章,嗯,都很好,学习中..... 然后,将支付宝提供的测试密 ...
- java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
openssl简介 OpenSSL 是一个开源项目,其组成主要包括以下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls ...
- java pkcs8格式的私钥_RSA加密解密中pkcs1与pkcs8格式私钥互相转换
net,ios中rsa加解密使用的是pkcs1,而java使用的是pkcs8 如果是按1024取模(通常都是1024),pkcs1格式的私钥长度应该是812.如果是pkcs8的格式的密钥长度为861. ...
- java pkcs1转pkcs8_.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接...
众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...
- .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接
众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...
- openssl生成RSA格式及pkcs1与pkcs8格式互相转换
openssl简介 OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls ...
- pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换
openssl 生成pkcs1格式的私钥,密钥长度2048位, (PKCS1) openssl genrsa -out private.pkcs1.pem 2048 PKCS1私钥转换为PKCS8 o ...
- Java 通过证书文件获取私钥
java通过证书文件获取私钥 import org.springframework.core.io.ClassPathResource;import java.util.Arrays; import ...
- JavaScript实现前端rsa公钥加密,后端Java私钥进行解密
JavaScript实现前端rsa公钥加密,后端Java私钥进行解密 rsa进行前端js加密,后端java解密时需要注意,由后端先生成一对公私密钥对,然后将公钥传给前端,私钥后端保存,待下次前端请求后 ...
最新文章
- IntelliJ IDEA图标里面的C图标,I图标含义
- 图片放大显示的jQuery插件
- 怎样不停请求接口实现实时刷新_Hologres+Flink实时数仓详解
- pandas的dataframe节省内存
- linux 内核驱动的poll,Linux驱动基石之POLL机制
- [转载] C++灵魂所在之---多态的前世与今生
- Ubuntu Qt 编译问题
- java string 栈_Java堆和栈的区别(String类)
- qt调试失败问题跟踪
- php动态增加div,JavaScript动态创建div等元素实例
- python循环语句c次_python循环语句
- 小榕重复数据清除器xp 怎么用
- 万用表的使用方法 (图解)
- dfs序+线段树--青出于蓝胜于蓝
- 永恒之蓝病毒事件所引发的运维安全行业新思考
- Android 内置第三方app
- java高内聚低耦合
- 织梦网站添加优酷腾讯等视频方法
- Python中max函数key的用法详解
- 非简谐近似马库斯电荷转移理论揭示MoS₂场效应晶体管中缺陷引起的电荷俘获/退俘获和迟滞现象
热门文章
- Git 忽略文件配置规则
- 福建省高职单招计算机上机试题,福建省高职单招计算机类试卷二
- 蚂蚁金服软件测试工程师一面面试题(附答案)建议收藏
- Django对接第三方认证登录平台(QQ登录)
- Arm技术文档全集合(含AMBA总线,Cortex-A,Contex-M,Cortex-R系列处理器,Arm体系结构,Arm服务器,Mali GPU,Keil 开发等PDF下载)
- 我投了份简历,接到了十八个骚扰电话
- android蓝牙获取mac地址,如何获得蓝牙连接设备的MAC地址在android中
- 北京尾号限行12月8日起轮换
- 取得给定日期的上月同期
- 虚拟驾驶环境搭建(一)