【密码算法 之八】Hash类算法(单向散列函数) MD5 \ SHA1 \ SHA224 \ SHA256 \ SHA384 \ SHA512等浅析

1. 综述

  Hash算法,又称单向散列函数(one-way hash function)。
  单向散列函数有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来计算消息的完整性。
在这里插入图片描述
  单向散列函数也称为消息摘要函数(message digest function)、哈希函数或者杂凑函数。
  输入单向散列函数的消息也称为原像(pre-image)。
  单向散列函数输出的散列值 也称为消息摘要(message digest)指纹(fingerprint),相当于该消息的身份证。
  单向散列函数有多种实现方式,常见的有MD5、SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)、SHA-3等。

2. 特性

  • 散列值长度固定
    无论消息的长度有多少,使用同一算法计算出的散列值长度总是固定的,比如MD5算法,无论输入多少,产生的散列值长度总是128比特(16字节)。
    在这里插入图片描述

  • 消息不同其散列值也不同
    使用相同的消息,产生的散列值一定相同;使用不同的消息,产生的散列值也不相同,哪怕只有一个比特的差别,得到的散列值也会有很大的区别。这一特性也叫抗碰撞性,对于抗碰撞弱的算法,我们不应该使用。
    在这里插入图片描述

  • 具备单向性
    单向散列函数必须具有单向性(one-way)。单向性是指无法通过散列值推算出消息的性质,通过消息计算散列值是非常容易的,但是反过来是行不通的。
    在这里插入图片描述

3. SM3

  SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。该算法于2012年发布为密码行业标准(GM/T 0004-2012),2016年发布为国家密码杂凑算法标准(GB/T 32905-2016)。
   SM3适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法,其安全性和SHA-256相当。SM3和MD5的迭代过程类似,也采用Merkle-Damgard结构。消息分组长度为512位,摘要值长度为256位
   整个算法的执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果。

4. MD5

  MD4是由Rivest于1990年设计的单向散列函数,能够产生 128比特 的散列值(RFC1186,修订版RFC1320)。
  MD5是由Rivest于1991年设计的单向散列散列函数,能够产生 128比特 的散列值(RFC1321)。
  MD4和MD5中的MD是消息摘要(Message Digest)的缩写。目前这两个单向散列函数均已经不安全了。

5. SHAx

  SHA-1是由NIST(National Institute of Standards and Technology,美国国家标准技术研究所)设计的一种能够产生 160比特 散列值的单向散列函数。目前SHA-1已经被列入“可谨慎运用的密码清单”,即除了用于保持兼容性的目的外,其他情况下都不推荐使用。
  SHA-224、SHA-256、SHA-384和SHA-512都是由NIST设计的单向散列函数,他们的散列值长度分别为 224比特、256比特、384比特、512比特 。这些单向散列函数合起来统称SHA-2。
  SHA-2共包含下列6种版本,这6种SHA-2版本实质上都是由SHA-256和SHA-512两个版本衍生出来的。

名称输出长度内部状态长度备注
SHA-22422432*8=256将SHA-256的结果截掉32比特
SHA-25625632*8=256
SHA-512/22422464*8=512将SHA-512的结果截掉288比特
SHA-512/25625664*8=512将SHA-512的结果截掉256比特
SHA-38438464*8=512将SHA-512的结果截掉128比特
SHA-51251264*8=512

6. 典型应用场景

  单向散列函数并不能确保信息的机密性,它是一种保证信息完整性的密码技术。其主要的应用场景如下:

6.1 用户密码保护

  用户在设置密码时,不记录密码本身,只记录密码的散列值,只有用户自己知道密码的明文。校验密码时,只要输入的密码正确,得到的散列值一定是一样的,表示校验正确。
在这里插入图片描述

6.2 接口验签

  为了保证接口的安全,可以采用签名的方式发送。发送者与接收者要有一个共享秘钥。当发送者向接收者发送请求时,参数中附加上签名(签名由共享秘钥 + 业务参数,进行单向散列函数加密生成)。接收者收到后,使用相同的方式生成签名,再与收到的签名进行比对,如果一致,验签成功。这样即可以验证业务参数是否被篡改,又能验明发送者的身份。
在这里插入图片描述

6.3 文件完整性校验

  文件被挂载到网站时,同时也附上其散列值和算法,比如 Tomcat 官网。用户下载后,计算其散列值,对比结果是否相同,从而校验文件的完整性。
在这里插入图片描述

6.4 云盘秒传

  当我们将自己喜欢的视频放到网盘上时,发现只用了几秒的时间就上传成功了,而这个文件有几个G大小,是怎么做到的呢?其实这个“秒传”功能可以利用单向散列函数来实现。
  当我们上传一个文件时,云盘客户端会先为该文件生成一个散列值。拿着这个散列值去数据库中匹配,如果匹配到,说明该文件已经在云服务器存在。只需将该散列值与用户进行关联,便可完成本次“上传”。这样,一个文件在云服务器上只会存一份,大大节约了云服务器的空间。
在这里插入图片描述

7. 总结

  MD5与SHA-1算法已被攻破,不应该再用于新的用途;SHA-2与SHA-3还是安全的,可以使用。
  SHA-2包括:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
  SHA-3包括:SHA3-224、SHA3-256、SHA3-384、SHA3-512。

算法分组长度(bytes)输出长度(hash value)(bytes)是否安全
SM36432安全
MD46416不安全
MD56416不安全
SHA16420不安全
SHA2246428安全
SHA2566432安全
SHA38412848安全
SHA51212864安全

各种算法的链接地址如下:
【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9…)

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将115sha1链接转换为迅雷下载链接,可以按照以下步骤进行操作: 首先,打开迅雷下载软件,并确保已经登录迅雷账号。 然后,复制115sha1链接,该链接通常以“ed2k://”开头,后面跟着一串由字母和数字组成的字符串。 接下来,在迅雷软件的界面中找到“新建任务”或“添加任务”的选项,点击打开一个对话框。 在对话框中,将复制的115sha1链接粘贴到任务链接的输入框中。然后点击“确定”或“添加”按钮。 迅雷软件会自动解析该链接,并转换成可下载的格式。 最后,在迅雷的下载管理列表中,可以看到新添加的任务,然后点击“开始下载”按钮即可开始下载该文件。 需要注意的是,迅雷软件一般支持多种下载链接格式,包括ed2k、magnet等,但并不是所有的链接都能被迅雷解析和转换成下载链接。如果遇到无法解析的链接,可能是链接格式不支持或者链接无效。 总的来说,通过以上操作,就可以将115sha1链接转换成迅雷下载链接,并使用迅雷软件进行下载。 ### 回答2: 将115sha1链接转为迅雷下载链接的方法如下: 1. 打开迅雷下载软件,确保已经登录账号。 2. 复制115sha1链接,可以通过右键菜单或者选定链接后按Ctrl+C进行复制。 3. 在迅雷软件中,点击菜单栏上的“文件”选项,然后选择“新建任务”或者按下快捷键Ctrl+N。 4. 在弹出的新建任务对话框中,将复制的115sha1链接粘贴到输入框中,可以通过右键菜单或者按下快捷键Ctrl+V进行粘贴。 5. 粘贴完成后,点击对话框底部的“确定”按钮。 6. 迅雷会自动解析115sha1链接,并将其转换为迅雷下载链接。 7. 转换完成后,迅雷将弹出一个新的对话框,显示文件的相关信息,如文件名、大小等。 8. 在新的对话框中,可以选择下载的保存路径,也可以选择下载的线程数、下载速度限制等。 9. 完成设置后,点击对话框中的“开始”按钮,迅雷即开始下载该文件。 10. 下载完成后,迅雷会自动保存文件至设置的保存路径,并提供相应的操作选项,如打开文件所在的目录等。 通过以上步骤,您可以将115sha1链接转换为迅雷下载链接,并使用迅雷软件进行下载。 ### 回答3: 将115sha1链接转换为迅雷下载链接,您可以使用以下步骤: 1. 打开115网盘的官方网站并登录您的账号。 2. 在115网盘内找到您所需下载的文件,并复制该文件的115sha1链接。 3. 打开迅雷软件,并确保您已登录迅雷账号。 4. 在迅雷软件的界面上,找到并点击下载任务的"新建任务"按钮(通常是加号"+"图标)。 5. 粘贴复制的115sha1链接至新建任务的输入框中。 6. 迅雷会自动识别链接,并在弹出的窗口中显示文件的名称和大小等信息。 7. 确认无误后,点击窗口底部的"下载"按钮,任务将被添加到迅雷下载队列中。 请注意,如果您的迅雷软件没有登录账号或未经过账号验证,可能不支持从115网盘下载文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值