Java常用的加密算法

本文從對稱加密和非對稱加密展開論述。

簡介:

  • 對稱加密: 加密和解密的祕鑰使用的是同一個.
  • 非對稱加密: 與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。

對稱加密算法: 密鑰較短,破譯困難,除了數據加密標準(DES),另一個對稱密鑰加密系統是國際數據加密算法(IDEA),它比DES的加密性好,且對計算機性能要求也沒有那麼高.

優點:

    算法公開、計算量小、加密速度快、加密效率高

缺點:

    在數據傳送前,發送方和接收方必須商定好祕鑰,然後 使雙方都能保存好祕鑰。其次如果一方的祕鑰被泄露,那麼加密信息也就不安全了。另外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一祕鑰,這會使得收、發雙方所擁有的鑰匙數量巨大,密鑰管理成爲雙方的負擔。

常見的對稱加密算法有: DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES 

非對稱加密算法: 公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因爲加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。

非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作爲公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密後再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密後的信息進行解密。甲方只能用其專用密鑰解密由其公用密鑰加密後的任何信息。

優點:

    安全

缺點:

    速度較慢

常見的非對稱加密算法有: RSA、ECC(移動設備用)、Diffie-Hellman、El Gamal、DSA(數字簽名用)

Hash算法(摘要算法)

Hash算法特別的地方在於它是一種單向算法,用戶可以通過hash算法對目標信息生成一段特定長度的唯一hash值,卻不能通過這個hash值重新獲得目標信息。因此Hash算法常用在不可還原的密碼存儲、信息完整性校驗等。

常見的摘要算法有: MD2、MD4、MD5、HAVAL、SHA

參考:https://blog.csdn.net/qq_29689487/article/details/81634057

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