1. 程式人生 > >Java編碼加密摘要算法異同比較與總結

Java編碼加密摘要算法異同比較與總結

服務 不同的 aes 計算 編碼 str 運行速度 對數 表示

編碼算法

  1. URL編碼.

  用途:數據發送給服務器使用URL編碼規則.

  編碼規則:A~Z,a~z,0-9,-_.*保持不變,其他字符以%xx表示。如中文:%E4%B8%AD(該漢字的的十六進制是0xe4b8ad)

   2.Unicode編碼

  十六進制編碼。中文和引文的編碼不一樣。

   3.Base64編碼

  用途:把二進制數據用文本表示的算法。

摘要算法

用途:計算任意長度數據的摘要,輸出固定長度.

  1.MD5摘要算法

大小:長度128位,16字節

  2.SHA-1摘要算法,通常用於數字簽名.

大小:長度160位,20字節

  3.SHA-256摘要算法

大小:長度256位,32字節,是SHA1的擴充版.

MD5和SHA1比較:SHA1摘要長度比MD5長32位.如果遇上強行攻擊,SHA1安全性要高於MD5.但速度上,在相同的硬件上,SHA1運行速度比MD5慢.

加密算法

  1. 對稱加密算法

    DES算法/AES算法

      使用同一個密鑰進行加密和解密.

      例子:WinRAR解壓文件夾,使用的即為對稱加密算法.

   2.非對稱加密算法

    RSA算法

      使用不同的密鑰進行加密和解密,公鑰加密和私鑰解密.除了加密以外,RSA同樣可對數據進行簽名.

各算法在數據通信中的用途: 摘要算法:確保數據從發送到接收完成過程沒有被篡改. 對稱/非對稱加密算法:對通信數據進行加密和解密. 簽名算法:確保數據完整性和抗否認性.

Java編碼加密摘要算法異同比較與總結