010tools.comMD5在線加密(HASH)工具(010tools 最好用的在線工具集合)

16位大寫:

16位小寫:

32位大寫:

32位小寫:


什麼是MD5

MD5算法是哈希算法的一種,在特定應用場景下也叫MD5加密,嚴格意義上講MD5算法是一種哈希算法,哈希算法與加密算法一個明顯的區分點,處理後的數據是否可以被還原成原始文本。
MD5 32位是MD5標準輸出128bit,16字節,轉成16進制文本表現,就成了32位,比如MD5("010tools")=fa1504ad19c96e376f935ca10443e559,MD5數據長度是32位,但實際存儲只需16個字節,128bit就可以保存。 MD5 16位實際上是從 32 位字符串中取中間的第 9 位到第 24 位的部分。

什麼是哈希(HASH)算法

散列函數(英語:Hash function)又稱散列算法哈希函數,是一種從任何一種數據中創建小的數字“指紋”的方法。散列函數把消息或數據壓縮成摘要,使得數據量變小,將數據的格式固定下來。該函數將數據打亂混合,重新創建一個叫做散列值hash valueshash codeshash sums,或hashes)的指紋。散列值通常用一個短的隨機字母和數字組成的字符串來代表。好的散列函數在輸入域中很少出現散列衝突。在散列表和數據處理中,不抑制衝突來區別數據,會使得數據庫記錄更難找到。

哈希算法通常有以下幾個特點:
  1. 正像快速:原始數據可以快速計算出哈希值
  2. 逆向困難:通過哈希值基本不可能推導出原始數據
  3. 輸入敏感:原始數據只要有一點變動,得到的哈希值差別很大
  4. 衝突避免:很難找到不同的原始數據得到相同的哈希值
哈希算法使用場景

  1. 數據校驗: 哈希算法主要用來保障數據真實性(即完整性),即發信人將原始消息和哈希值一起發送,收信人通過相同的哈希函數來校驗原始數據是否真實。
  2. 安全加密: 日常用戶密碼加密通常使用的都是 md5sha等哈希函數,因為不可逆,而且微小的區別加密之後的結果差距很大,所以安全性更好。,即發信人將原始消息和哈希值一起發送,收信人通過相同的哈希函數來校驗原始數據是否真實。
  3. 唯一標識: 比如 URL 字段或者圖片字段要求不能重複,這個時候就可以通過對相應字段值做 md5 處理,將數據統一為 32 位長度從數據庫索引構建和查詢角度效果更好,此外,還可以對文件之類的二進制數據做 md5 處理,作為唯一標識,這樣判定重複文件的時候更快捷。
  4. 負載均衡: 對於同一個客戶端上的請求,尤其是已登錄用戶的請求,需要將其會話請求都路由到同一臺機器,以保證數據的一致性,這可以藉助哈希算法來實現,通過用戶 ID 尾號對總機器數取模(取多少位可以根據機器數定),將結果值作為機器編號。
  5. 分佈式緩存: 分佈式緩存和其他機器或數據庫的分佈式不一樣,因為每臺機器存放的緩存數據不一致,每當緩存機器擴容時,需要對緩存存放機器進行重新索引(或者部分重新索引),這裡應用到的也是哈希算法的思想。