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获取私钥相关推荐

  1. RSA PKCS1和PKCS8的ASN格式

    最近要和支付宝支付做个对接,然后发现自己对RSA一无所知....补知识点吧.... 嗯,百度了一下Sha256withRSA,出现了一大堆文章,嗯,都很好,学习中..... 然后,将支付宝提供的测试密 ...

  2. java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换

    openssl简介 OpenSSL 是一个开源项目,其组成主要包括以下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls ...

  3. java pkcs8格式的私钥_RSA加密解密中pkcs1与pkcs8格式私钥互相转换

    net,ios中rsa加解密使用的是pkcs1,而java使用的是pkcs8 如果是按1024取模(通常都是1024),pkcs1格式的私钥长度应该是812.如果是pkcs8的格式的密钥长度为861. ...

  4. java pkcs1转pkcs8_.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接...

    众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...

  5. .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接

    众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...

  6. openssl生成RSA格式及pkcs1与pkcs8格式互相转换

    openssl简介 OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls ...

  7. pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换

    openssl 生成pkcs1格式的私钥,密钥长度2048位, (PKCS1) openssl genrsa -out private.pkcs1.pem 2048 PKCS1私钥转换为PKCS8 o ...

  8. Java 通过证书文件获取私钥

    java通过证书文件获取私钥 import org.springframework.core.io.ClassPathResource;import java.util.Arrays; import ...

  9. JavaScript实现前端rsa公钥加密,后端Java私钥进行解密

    JavaScript实现前端rsa公钥加密,后端Java私钥进行解密 rsa进行前端js加密,后端java解密时需要注意,由后端先生成一对公私密钥对,然后将公钥传给前端,私钥后端保存,待下次前端请求后 ...

最新文章

  1. IntelliJ IDEA图标里面的C图标,I图标含义
  2. 图片放大显示的jQuery插件
  3. 怎样不停请求接口实现实时刷新_Hologres+Flink实时数仓详解
  4. pandas的dataframe节省内存
  5. linux 内核驱动的poll,Linux驱动基石之POLL机制
  6. [转载] C++灵魂所在之---多态的前世与今生
  7. Ubuntu Qt 编译问题
  8. java string 栈_Java堆和栈的区别(String类)
  9. qt调试失败问题跟踪
  10. php动态增加div,JavaScript动态创建div等元素实例
  11. python循环语句c次_python循环语句
  12. 小榕重复数据清除器xp 怎么用
  13. 万用表的使用方法 (图解)
  14. dfs序+线段树--青出于蓝胜于蓝
  15. 永恒之蓝病毒事件所引发的运维安全行业新思考
  16. Android 内置第三方app
  17. java高内聚低耦合
  18. 织梦网站添加优酷腾讯等视频方法
  19. Python中max函数key的用法详解
  20. 非简谐近似马库斯电荷转移理论揭示MoS₂场效应晶体管中缺陷引起的电荷俘获/退俘获和迟滞现象

热门文章

  1. Git 忽略文件配置规则
  2. 福建省高职单招计算机上机试题,福建省高职单招计算机类试卷二
  3. 蚂蚁金服软件测试工程师一面面试题(附答案)建议收藏
  4. Django对接第三方认证登录平台(QQ登录)
  5. Arm技术文档全集合(含AMBA总线,Cortex-A,Contex-M,Cortex-R系列处理器,Arm体系结构,Arm服务器,Mali GPU,Keil 开发等PDF下载)
  6. 我投了份简历,接到了十八个骚扰电话
  7. android蓝牙获取mac地址,如何获得蓝牙连接设备的MAC地址在android中
  8. 北京尾号限行12月8日起轮换
  9. 取得给定日期的上月同期
  10. 虚拟驾驶环境搭建(一)