轉自 https://my.oschina.net/jiangli0502/blog/171263
RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前爲止已知的絕大多數密碼攻擊,已被ISO推薦爲公鑰數據加密算法。
RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
密鑰的長度越長,安全性就越好,但是加密解密所用的時間就會越多。而一次能加密的密文長度也與密鑰的長度成正比。一次能加密的密文長度爲:密鑰的長度/8-11。所以1024bit長度的密鑰一次可以加密的密文爲1024/8-11=117bit。所以非對稱加密一般都用於加密對稱加密算法的密鑰,而不是直接加密內容。對於小文件可以使用RSA加密,但加密過程仍可能會使用分段加密。
對於RSA產生的公鑰、私鑰,我們可以有兩種方式可以對信息進行加密解密。私鑰加密-公鑰解密 和 公鑰加密-私鑰解密。
通過RSA加密解密算法,我們可以實現數字簽名的功能。我們可以用私鑰對信息生成數字簽名,再用公鑰來校驗數字簽名,當然也可以反過來公鑰簽名,私鑰校驗。