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加密——公加私解——私加公解

相關文章
相關標籤/搜索