RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密,RSA加密明文长度受到秘钥长度和加密填充方式的约束,RSA密钥长度随着保密级别提高,增加很快。
RSA秘钥位数主要有1024位和2048位两种长度,秘钥有两种格式:PKCS#1和PKCS#8
1、 PKCS#1和PKCS#8两种格式区别
PKCS#1:
定义了RSA公钥函数的基本格式标准,特别是数字签名。它定义了数字签名如何计算,包括待签名数据和签名本身的格式;它也定义了PSA公/私钥的语法。
PKCS#8:
私钥信息语法标准。PKCS#8定义了私钥信息语法和加密私钥语法,其中私钥加密使用了PKCS#5标准。生成RSA密钥对。现在一般都用PKCS#8 格式证书较多,PKCS#1格式证书转换为PKCS#8 可以通过工具进行转化。
公钥都是以“-----BEGIN PUBLIC KEY-----”开头,“-----END PUBLIC KEY-----”结尾,
格式如下:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCBpdpJ2YK4iYoB69iwZwgWHErh
X15RyXRtpTMnN2jAtsbLed+Px64htxmxqSac7u2PGWQWUEyNcU0e2HOER96xz4r5
TqbGS5FZUqr6dem5zZuNLdWNiNqCXnv4OaP/e6Y6OphYnaNrcmNIULihPdRSwVn4
7At0YxJMMTDxGUJoCQIDAQAB
-----END PUBLIC KEY-----