算法 [学习笔记] 哈希函数和 SHA-256

aaron67 · 2018年02月28日 · 381 次阅读

散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values, hash codes, hash sums或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。

原始数据    ---输入--->    哈希函数   ---输出--->   “指纹”数据
  • 是一种数据转换函数,将输入(原数据)映射成输出(索引)
  • 设计良好的哈希函数,对不同的输入,会得到不同的输出
  • 压缩输入数据,一般会生成固定长度的输出
  • 是不可逆的,是输入到输出的“单向”函数

哈希函数的概念非常宽泛,是一类算法的统称,常见的哈希函数有MD5SHA

SHA(Secure Hash Algorithm,安全散列算法)是一个密码散列函数家族,由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布,是美国的政府标准。包括 SHA-0系列、SHA-1系列、SHA-2系列和SHA-3系列。SHA-256SHA-2系列函数之一。

对于SHA-256

  • 无论输入多长,都输出64个字符,共32字节(byte),256位(bit)
  • 输出只包含数字0~9和字母A~F,大小写不敏感

可以使用在线Hash计算工具体验一下。文本Hi Blockchain!SHA-256结果为475025F51CB88D38C3FD15FCBEBA4E33BCF8ACD5173ACBED91439FFB0FA9D8B2

参考

共收到 0 条回复
aaron67 [学习笔记] 非对称加密和签名认证 中提及了此贴 03月02日 16:52
aaron67 [学习笔记] 比特币的私钥和公钥 中提及了此贴 12月23日 13:59
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册