RSA 加解密 秘钥对说明

Posted azbane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA 加解密 秘钥对说明相关的知识,希望对你有一定的参考价值。

rsa非对称加密, 加解密需要不同的秘钥,称作一对。

rsa加解密分两种,第一:公钥加密私钥解密。第二:私钥加密公钥解密。 需要注意的是,公加私解得到的密文是变化的,而私加公解的得到的密文是固定的。

生成密匙对需要设置一个长度,常用的设置为1024,或者2048。注意,不同长度的密匙,能够加密的明文最长度是有限制的。说明如下:

1024的情况:

    加密时,明文最大长度: 1024/8 - 11 = 117   ,因此需要对明文做117字节长度的分片加密,再拼接。

    解密时,密文最大长度:1024/8 = 128, 因此需要对密文做128字节长度的分片解密,再拼接。

2048的情况:

    加密时,明文最大长度: 2048/8 - 11 = 245   ,因此需要对明文做245字节长度的分片加密,再拼接。

    解密时,密文最大长度:2048/8 = 256, 因此需要对密文做256字节长度的分片解密,再拼接。

 

C++调用openssl库生成的密匙对是pkcs#1格式的。java调用库生成的密匙对是pkcs#8格式的。

pkcs#1
-----BEGIN RSA  PUBLIC KEY-----
......公钥
-----END RSA  PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
......私钥
-----END RSA PRIVATE KEY-----

 

pkcs#8
-----BEGIN PUBLIC KEY-----
......公钥
-----END PUBLIC KEY-----

-----BEGIN PRIVATE KEY-----
......私钥
-----END PRIVATE KEY-----

 

 

附1:pkcs#1 pkcs#8 在线转换工具

附2:C++调用openssl库生成秘钥对

附3:pkcs#1秘钥的格式化












以上是关于RSA 加解密 秘钥对说明的主要内容,如果未能解决你的问题,请参考以下文章

用Java实现RSA加解密及签名和验签——.pem文件格式秘钥

自己实现简单的RSA秘钥生成与加解密(Java )

自己实现简单的RSA秘钥生成与加解密(Java )

接口数据使用了 RSA 加密和签名?一篇文章带你搞定

用Java实现RSA加解密及签名和验签——.pfx文件格式秘钥

android rsa加解密私钥和公钥怎么用