设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 运营中心 > 建站资源 > 策划 > 正文

循序渐进学加密(3)

发布时间:2019-06-25 09:30 所属栏目:20 来源:张京
导读:对于私钥,因为Java只支持PKCS8,而我们用ssh-keygen生成的私钥是pkcs1的,所以还需要用以下命令把pkcs1的私钥转换为pkcs8的私钥: opensslpkcs8-topk8-informPEM-outformPEM-nocrypt-in私钥文件名-out导出文件名

对于私钥,因为Java只支持PKCS8,而我们用ssh-keygen生成的私钥是pkcs1的,所以还需要用以下命令把pkcs1的私钥转换为pkcs8的私钥:

  1. openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in 私钥文件名 -out 导出文件名 

得到pkcs8格式的私钥之后,我们把这个文件的头和尾去掉,然后放入以下Java代码:

  1. try { 
  2.     Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); 
  3.     cipher.init(Cipher.DECRYPT_MODE, KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(Base64.getDecoder().decode("这里是私钥")))); 
  4.     String plaintext = new String(cipher.doFinal(Base64.getDecoder().decode("这里是密文".getBytes())), "UTF-8"); 
  5.     System.out.println(plaintext); 
  6. } catch (Exception e) { 
  7.     System.out.println("解密出错:" + e.toString()); 

和上面的AES解密类似,只是增加了KeyFactory读取PKCS8格式私钥的部分,这样我们就完成了Java端的RSA解密。

以上我们用最简单的方式实现了js端加密,java端解密的过程,感兴趣的朋友可以在这里下载完整的代码亲自验证一下:

https://github.com/fengerzh/encdec

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读