wphp
https://zh.wikipedia.org/wiki/MD5算法
1992年8月,罗纳德·李维斯特向IETF提交了一份重要文件,描述了这种算法的原理,因为这种算法的公开性和安全性,在90年代被普遍使用在各类程序语言中,用以确保资料传递无误等。安全
MD5由MD4、MD3、MD2改进而来,主要加强算法复杂度和不可逆性。服务器
目前,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