序幕
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
实现
vue
下载md5包npm install js-md5
测试,并打印出md5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <template> <div> 666 </div>
</template> <script> import md5 from 'js-md5'
export default { data () { return { } }, components:{ }, mounted:function(){ var ed = '2020' var sign = md5('price=500&goodid=3,1' + ed) console.log(sign); }, methods:{
} } </script>
<style scoped>
</style>
|
打印结果:
1
| a4299afde799fa1bf6d1ba0c13b0def7
|
Django(后端)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import hashlib
price = "1" goodid = "3,1"
sign = "a4299afde799fa1bf6d1ba0c13b0def7"
md5 = hashlib.md5()
sign_str = "price="+price+"&goodid="+goodid+"2020"
mysign = str(sign_str).encode(encoding="utf-8")
md5.update(mysign) mysign = md5.hexdigest()
print(mysign) if sign == mysign: print("pass") else: print("数据被篡改")
|
打印结果:
1 2
| 8c6849857cfeab25fa83bf7497943022 数据被篡改
|
总结
md5加密不经常用,但在设计到重要信息(金钱,虚拟币,商品)的时候会给我们数据带来非常安全的保障