时间:2023-07-14|浏览:164
- 你在一个网站注册了账号,输了密码、身份证号、银行卡号,有没有担心过自己的敏感数据会被泄露呢? - 你是一个互联网产品经理,当你跟程序员提需求的时候说:用户忘记密码时把密码原文通过邮件发给用户,程序员是这个表情:(产品经理风评被害 - 你是一个程序员领导告诉你,用户的敏感数据要进行哈希,你是不是这种心情:
其实这些都跟哈希函数的应用有关,并且存在于我们生活和工作的方方面面。但是当大家往往听到密码学、哈希这种词汇就觉得它很深奥,其实也没那么复杂,今天我们就分析一下。
01什么是哈希?
讲哈希的话,我们从用户密码存储方式的发展举例吧。
1.简单的密码存储
前几年我们经常会看到这样的新闻,“惊!某网站用户账号密码被泄露”等等。其实在互联网发展的初期,用户密码在数据库中完全明文存储,黑客进了数据库之后,用户关联的所有信息都会被盗,用户信息毫无安全性可言。
2.经过升级的密码存储
哈希函数是一种单向散列函数,也就是说无法通过散列值推算出消息。用户密码经过哈希函数计算后存储在数据库中,当用户再次登录时,输入密码进行哈希后与数据库中的散列值进行对比,以判断用户密码是否正确。
由于哈希函数的单向性,无法从散列值反推出密码。所以当用户忘记密码时,无法通过散列值计算出原本的密码。
不过,黑客可以使用彩虹表攻击来破解哈希值,但为了增加安全性,人们发明了加盐的哈希算法。
3.再次升级的密码存储
为了防止彩虹表攻击,人们在哈希算法中加入盐,增加密码的安全性。加了盐之后的哈希值更难破解。
区块链里面的哈希函数是指在区块链技术中使用的哈希函数,常见的有MD5、SHA-1、SHA-256等。
02区块链里面的哈希函数
常见的几种哈希函数有MD5、SHA-1、SHA-256、SHA-384、SHA-512和RIPEMD-160。不同的区块链应用可能使用不同的哈希算法。
哈希函数在密码学中起到重要的作用,保护用户的敏感数据和信息安全。虽然涉及到一些数学知识,但对于不同行业的读者来说,了解哈希函数的基本概念和应用就足够了。如果对底层实现感兴趣,可以继续深入学习。
来源:百度 作者:Candy链上笔记