RSA是一个非对称的加密算法,使用一对公钥和私钥进行加密。使用公钥加密数据,使用私钥解密数据。或者使用私钥加密,公钥解密。
私钥一般分为 pkcs#1 pkcs#8 二种,pkcs#8 更通用一些
openssl genrsa -out private_pkcs1.pem 2048
openssl pkcs8 -in private_pkcs1.pem -out private_pkcs8.pem -topk8 -nocrypt
openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem
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
openssl rsa -in public_pkcs8.pem -out public_pkcs1.pem -pubin -RSAPublicKey_out
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
原文:https://www.cnblogs.com/clintisgoodboy/p/14763828.html