Java与openssl的RSA算法

    1.java生成的公私钥格式为 pkcs8(PKCS8EncodedKeySpec), 而openssl默认生成的公私钥格式为 pkcs1

    2.java采用的rsa默认补齐方式是pkcs1 (RSA/None/PKCS1Padding), 因此互用的时候需要将openssl中的补齐方式设置为RSA_PKCS1_PADDING

    3.RSA加密中,加密数据长度有限制,不能超过密钥长度-11, 如密钥为1024位,则最长的加密数据位117字节;

加密后的密文长度总是为密钥的一半,即1024位的密文为512位

 

1)生成RSA私钥
openssl genrsa -out rsa_private_key.pem 1024

 

2)把RSA私钥转换成PKCS8格式
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem

 

3)生成RSA公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

 

参考:

PKCS8密钥格式

posted @ 2017-10-13 14:52  等风来。。  Views(870)  Comments(0Edit  收藏  举报
------------------------------------------------------------------------------------------------------------ --------------- 欢迎联系 x.guan.ling@gmail.com--------------- ------------------------------------------------------------------------------------------------------------