[学习笔记] 哈希函数和 SHA-256
散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values, hash codes, hash sums或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。
原始数据 ---输入---> 哈希函数 ---输出---> “指纹”数据
- 是一种数据转换函数,将输入(原数据)映射成输出(索引)
- 设计良好的哈希函数,对不同的输入,会得到不同的输出
- 压缩输入数据,一般会生成固定长度的输出
- 是不可逆的,是输入到输出的“单向”函数
哈希函数的概念非常宽泛,是一类算法的统称,常见的哈希函数有MD5、SHA等
SHA(Secure Hash Algorithm,安全散列算法)是一个密码散列函数家族,由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布,是美国的政府标准。包括 SHA-0系列、SHA-1系列、SHA-2系列和SHA-3系列。SHA-256是SHA-2系列函数之一
对于SHA-256
- 无论输入多长,都输出
64个字符,共32字节(byte),256位(bit) - 输出只包含数字
0~9和字母A~F,大小写不敏感
可以使用在线Hash计算工具体验一下。文本Hi Blockchain!的SHA-256结果为
475025F51CB88D38C3FD15FCBEBA4E33BCF8ACD5173ACBED91439FFB0FA9D8B2
转 https://zhuanlan.zhihu.com/p/34361199
浙公网安备 33010602011771号