RSA加密解密及數字簽名Java實現

轉自 https://my.oschina.net/jiangli0502/blog/171263

RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前爲止已知的絕大多數密碼攻擊,已被ISO推薦爲公鑰數據加密算法。

RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。

密鑰的長度越長,安全性就越好,但是加密解密所用的時間就會越多。而一次能加密的密文長度也與密鑰的長度成正比。一次能加密的密文長度爲:密鑰的長度/8-11。所以1024bit長度的密鑰一次可以加密的密文爲1024/8-11=117bit。所以非對稱加密一般都用於加密對稱加密算法的密鑰,而不是直接加密內容。對於小文件可以使用RSA加密,但加密過程仍可能會使用分段加密。

對於RSA產生的公鑰、私鑰,我們可以有兩種方式可以對信息進行加密解密。私鑰加密-公鑰解密 和 公鑰加密-私鑰解密。

通過RSA加密解密算法,我們可以實現數字簽名的功能。我們可以用私鑰對信息生成數字簽名,再用公鑰來校驗數字簽名,當然也可以反過來公鑰簽名,私鑰校驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章