ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Hash算法简介

2020-01-13 14:54:27  阅读:323  来源: 互联网

标签:SHA1 Hash 简介 算法 哈希 Digest MD5


Hash算法性质

Hash算法用于计算消息摘要(Message Digest),可以将任意长的输入信息快速地转换为固定长度的输出。在区块链中主要利用了Hash算法的三种性质:

  • 抗冲突性(Collision Resistance):不同的输入经过Hash运算之后很难产生相同的输出,哪怕输入之间只有微小的差别也会对输出造成很大的影响。
  • 信息隐藏(Hiding):是指很难通过输出的内容联想到输入的内容。
  • 谜题性(Puzzle Friendly):知道了输出想反向计算出原始的输入内容几乎是不可能做到的。

应用场景举例

文件校验

p2p软件在下载完成之后,为了防止下载的文件被篡改或者损坏,会对文件进行用MD5哈希算法进行校验,计算结果和预先得到的哈希值一致才认为下载成功。

数字签名

将要传递的信息经过Hash运算之后生成消息摘要(Message Digest),再用自己的私钥对消息摘要进行加密作为附带的签名一起传输给对方。这样一来能实现1.防止信息被截获篡改;2.证明信息确实是来自于哪个人。

常见Hash算法种类

MD5

MD5(Message Digest 5)是一种被广泛使用的Hash函数,可以产生出一个128位(16字节)的Hash值,用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。
MD5比MD4更加安全,但过程更加复杂,计算速度要慢一点。MD5已于2004年被成功碰撞,其安全性已不足应用于商业场景。

SHA1

SHA(Secure Hash Algorithm)家族中第一代哈希算法,SHA1在许多安全协议中广为使用,包括TLS和SSL。2017年2月,Google宣布已攻破了SHA1,并准备在其Chrome浏览器产品中逐渐降低SHA1证书的安全指数,逐步停止对使用SHA1哈希算法证书的支持。

SHA2

SHA(Secure Hash Algorithm)家族中第二代哈希算法,这是SHA算法家族的第二代,支持了更长的摘要信息输出,主要有SHA224、SHA256、SHA384和SHA512,数字后缀表示它们生成的哈希摘要结果长度。

SHA3

SHA(Secure Hash Algorithm)家族中第三代哈希算法,之前名为Keccak算法(也就是说Keccak算法就是SHA3),SHA3并不是要取代SHA2,因为目前SHA2并没有出现明显的弱点。

RIPEMD-160

RIPEMD-160(RACE Integrity Primitives Evaluation Message Digest-160)是一个160位加密哈希函数。它旨在替代128位哈希函数MD4、MD5和RIPEMD-128。

SM3

SM3(Shang Mi 3)是国家密码局指定的国密版本的哈希算法,此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值。

标签:SHA1,Hash,简介,算法,哈希,Digest,MD5
来源: https://www.cnblogs.com/HachikoT/p/12187255.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有