在安全性认证、数字签名、信息传输校验等计算机安全领域,常用到的哈希值(Hash function)算法有 MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512等。其中,目前应用较广泛的是MD5值、SHA1值、SHA256值。
哈希值是什么意思?MD5、SHA1、SHA256等算法有什么区别?哪个算法更安全?怎么生成或查看MD5、SHA1或SHA256值?
例如,通过命令提示符查看刚下载的PS 2023安装文件的MD5值和SHA1值:
上图中的两行数值,就是3.2G大的Photoshop 2023安装包压缩文件的SHA1哈希值和MD5哈希值:
SHA1值:
25e5240e93f1ee498d3a3d76ec9c5cc5ff8f6237
MD5值:
6e2937a4af46731f0f4476b077a315a7
一、哈希值是什么意思?有什么用途?
哈希值,英语 Hash function,也称为散列函数、散列算法、哈希函数,是根据数据文件的内容,通过不同的算法运算生成的、由随机数字和字母组成的“数字指纹”字符串数值。
简单解释,就是对一个电脑文件(图片、文档、音乐、压缩文件、程序、区块链……)进行运算,生成一个唯一且不变的字符串,就是这个文件的哈希值,是该文件独有的“数字指纹”。
1、哈希值的特点:
唯一且不变的特性
同一个文件,无论体积大小,同一种算法只会生成一个唯一且固定不变的哈希值。如果这个文件被修改,即使只添加一个空格,它的哈希值也会改变。
不可逆的特性「 白云居丨https://baiyunju.cc 」
对数据文件进行运算可以生成哈希值,但不能通过哈希值推导出原数据文件。
2、哈希值的用途:
具有以上特点的哈希值,在以下领域有广泛的应用。
文件安全性校验
通过校验该文件的哈希值,判断是否为未被篡改的原始文件。如果被植入木马病毒或其他修改,其哈希值也会改变。
校验下载文件是否完整
通过校验哈希值,检查下载的文件是否完整,下载过程中是否丢失数据。比如通过BT等方式多线程下载的文件,就有必要检验文件的哈希值确保数据完整。
加密货币领域
加密货币领域中的交易哈希区块(Block Hash),就是通过上述 Sha256 算法计算出来的。
加密明文密码
负责任的网站不会在数据库内明文保存用户密码,通常以MD5值的方式储存。当用户登录时,系统会将用户输入的密码计算为MD5值,并与系统中的MD5值对照,以确定密码是否正确。
这样即使网站被拖库泄露数据,黑客也不能通过MD5值推导出用户密码。由于网站数据库内不存在明文密码,即使网站管理员也无法知道用户的密码。
二、MD5值、SHA1值、SHA256值有什么区别?哪个更安全?
常见的哈希值算法有 MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512等,它们的安全性是有区别的,有些算法已被淘汰。
目前,使用较多的哈希值算法有 MD5、SHA1、SHA256,其中最安全的是SHA256,可谓牢不可破,其256位的密钥从未被破解过;其次是 SHA1,然后是 MD5。
以安全性排列:MD5<SHA1<SHA256
虽然SHA256最安全,但是计算时比另外两种更耗时,因此除了加密货币等高安全性要求领域,其他场景下多使用MD5或SHA1。
算法名称 | 算法特点 | 输出长度(bits) | 碰撞破解 | 安全性 |
MD5 | 1992年发布,消息摘要算法(MD5 Message-Digest Algorithm),密码散列函数,被广泛应用,用于确保信息传输完整一致、密码管理、电子签名、垃圾邮件筛选等。 | 128 | 是 | 一般 |
SHA-1 | 1995年发布,安全散列算法(Secure Hash Algorithm),密码散列函数。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。SHA-1在许多安全协议中广为使用,包括TLS、GnuPG、SSH、S/MIME和IPsec,是MD5的后继者。但SHA-1的安全性在2010年以后已经不被大多数的加密场景所接受。2017年荷兰密码学研究小组CWI和Google正式宣布攻破了SHA-1。 | 160 | 是 | 较安全 |
SHA-2 | 2001年发布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。SHA-2目前没有出现明显的弱点。虽然至今尚未出现对SHA-2有效的攻击,但它的算法跟SHA-1基本上仍然相似。 | 224/256/384/512 | 否 | 非常安全 |
三、怎么生成和查看文件的MD5值、SHA1值、SHA256值?
详见《查看、生成 MD5、SHA1、SHA256 等哈希值的方法》https://baiyunju.cc/10380
更多相关文章:
《专栏丨哈希值的查询和验证》https://baiyunju.cc/tag/hash-function
《专栏丨电脑使用技巧》https://baiyunju.cc/tag/%e7%94%b5%e8%84%91%e6%8a%80%e5%b7%a7
《专栏丨Windows系统使用优化技巧》https://baiyunju.cc/tag/windows-xi-tong-you-hua-ji-qiao
《专栏丨C盘清理瘦身扩容》https://baiyunju.cc/tag/c%e7%9b%98%e6%b8%85%e7%90%86
禁止转载丨原文链接:https://baiyunju.cc/10377
©禁止转载原文 欢迎分享网址 侵权必究:『白云居』 » MD5、SHA1、SHA256等哈希值是什么意思?有何区别?