RSA 加解密 秘钥对说明

rsa非对称加密, 加解密须要不一样的秘钥,称做一对。html

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

生成密匙对须要设置一个长度,经常使用的设置为1024,或者2048。注意,不一样长度的密匙,可以加密的明文最长度是有限制的。说明以下:web

1024的状况:工具

    加密时,明文最大长度: 1024/8 - 11 = 117   ,所以须要对明文作117字节长度的分片加密,再拼接。加密

    解密时,密文最大长度:1024/8 = 128, 所以须要对密文作128字节长度的分片解密,再拼接。htm

2048的状况:blog

    加密时,明文最大长度: 2048/8 - 11 = 245   ,所以须要对明文作245字节长度的分片加密,再拼接。ssl

    解密时,密文最大长度:2048/8 = 256, 所以须要对密文作256字节长度的分片解密,再拼接。get

 

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

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秘钥的格式化

附4:C++ 使用openssl库实现 DES 加密——CBC模式 && RSA加密——公加私解——私加公解

相关文章
相关标签/搜索