首页 > 其他 > 详细

RSA非对称加密

时间:2021-05-13 13:58:07      阅读:10      评论:0      收藏:0      [点我收藏+]

前言

RSA是一个非对称的加密算法,使用一对公钥和私钥进行加密。使用公钥加密数据,使用私钥解密数据。或者使用私钥加密,公钥解密。

创建密钥

私钥一般分为 pkcs#1 pkcs#8 二种,pkcs#8 更通用一些

RSA私钥生成(==> PKCS#1)

openssl genrsa -out private_pkcs1.pem 2048

RSA私钥格式转换(PKCS#1 ==> PKCS#8)

openssl pkcs8 -in private_pkcs1.pem -out private_pkcs8.pem -topk8 -nocrypt

RSA私钥格式转换(PKCS#8 ==> PKCS#1)

openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem

RSA公钥提取

openssl rsa -in private_pkcs1.pem -out public_pkcs8.pem -pubout
openssl rsa -in private_pkcs1.pem -out public_pkcs1.pem -pubout -RSAPublicKey_out

openssl rsa -in private_pkcs8.pem -out public_pkcs8.pem -pubout
openssl rsa -in private_pkcs8.pem -out public_pkcs1.pem -pubout -RSAPublicKey_out

RSA公钥格式转换(PKCS#8 ==> PKCS#1)

openssl rsa -in public_pkcs8.pem -out public_pkcs1.pem -pubin -RSAPublicKey_out

RSA公钥编码格式转换(PKCS#8:PEM ==> DER)

openssl rsa -pubin -in public_pkcs8.pem -out public_pkcs8.der -outform DER
openssl rsa -in private_pkcs8.pem -out private_pkcs1.der -outform DER

使用插件

jsencrypt https://www.npmjs.com/package/jsencrypt
注意:加密超过私钥长度的明文时候,会加密失败。需要使用分段加密。相应的后端也需要使用分段解密。
encryptlong https://www.npmjs.com/package/encryptlong

jsencrypt加密 java解密 例子

https://blog.csdn.net/u010457492/article/details/78331549

RSA非对称加密

原文:https://www.cnblogs.com/clintisgoodboy/p/14763828.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!