散列算法的基礎原理 確保資料傳遞無誤

wphp

https://zh.wikipedia.org/wiki/MD5算法

1992年8月,羅納德·李維斯特IETF提交了一份重要文件,描述了這種算法的原理,因爲這種算法的公開性和安全性,在90年代被普遍使用在各類程序語言中,用以確保資料傳遞無誤等。安全

MD5由MD4MD3MD2改進而來,主要加強算法複雜度和不可逆性。服務器

目前,MD5算法因其廣泛、穩定、快速的特色,仍普遍應用於普通數據的錯誤檢查領域。例如在一些BitTorrent下載中,軟件將經過計算MD5檢驗下載到的文件片斷的完整性。dom

MD5已經普遍使用在爲文件傳輸提供必定的可靠性方面。例如,服務器預先提供一個MD5校驗和,用戶下載完文件之後,用MD5算法計算下載文件的MD5校驗和,而後經過檢查這兩個校驗和是否一致,就能判斷下載的文件是否出錯。工具

MD5亦有應用於部分網上賭場以保證賭博的公平性,原理是系統先在玩家下注前已生成該局的結果,將該結果的字符串配合一組隨機字符串利用MD5 加密,將該加密字符串於玩家下注前便顯示給玩家,再在結果開出後將未加密的字符串顯示給玩家,玩家即可利用MD5工具加密驗證該字符串是否吻合。加密

例子: 在玩家下注骰寶前,賭場便先決定該局結果,假設生成的隨機結果爲四、五、 6大,賭場便會先利用MD5 加密「4, 5, 6」此字符串並於玩家下注前告訴玩家;因爲賭場是沒法預計玩家會下什麼注,因此便能確保賭場不能做弊;當玩家下注完畢後,賭場便告訴玩家該原始字符串,即「4, 5, 6」,玩家即可利用MD5工具加密該字符串是否與下注前的加密字符串吻合。遊戲

該字符串通常會加上一組隨機字符串 (Random string),以防止玩家利用碰撞 (Collision) 解密字符串,但如使用超級電腦利用碰撞亦有可能從加上隨機字符串的加密字符串中獲取遊戲結果。隨機字符串的長度與碰撞的次數成正比關係,通常網上賭場使用的隨機字符串是長於20字,有些網上賭場的隨機字符串更長達500字,以增長解密難度。ip

相關文章
相關標籤/搜索