读书笔记 · 2026年 7月 13日 0

SHA256加密法 day 182

SHA256,它的全称是“安全哈希算法”,可不是嘻哈算法。“哈希”是Hash的音译,Hash就是进行Hash函数运算的意思。

Hash函数是这样,不论原始数据有多长、有多少位,经过Hash运算后,输出的值的长度都是固定的。

这有点像图书馆里给图书编号,不论是一本20页的足球规则手册,还是1700多页的《资本论》,它们的图书编号都是一个几厘米长的条形码。

但这个条形码要派上用场,需要几个先决条件:

  1. 任何书不论篇幅长短,都能通过Hash函数计算出唯一一个条形码;
  2. 条形码的长度是固定的;
  3. 不可能通过条形码,反推出原书的内容。

Hash函数类型很多,比如说比特币中用到了SHA256,256就代表经过函数运算后的结果,是一个256位的2进制数字。你可以把它理解为条形码的长度。

可能有人要问,怎么可能任何一个数都能写成一个固定长度的数呢?以十进制来说,假如固定长度是2的话,最多能表示0-99这100个数,遇到103不就没法表示了吗?

没关系。还记得之前我们讲过的模运算吧?在模是100的运算中,没有103这个数字,但是103等于99+4,所以输出结果的长度如果固定是2位的时候,103就可以写成04。

而SHA256函数的运算结果,是一个模为2的256次方的值,所以这个值一定是可以写成256位的。