如果你将下面这句话
陳女士欠鄧先生100元,立此為憑。
原封不动的抄下来(或者cut下来),然后 paste 到这个网站
这是什么东东呢? 稍后再讲。
只要你改了一丁点,比如说鄧先生
变成
鄧生, 那整个output 都不同了:
陳女士欠鄧生100元,立此為憑。
7FBA4E1C06D88B373DB7C3B0323398C67603F4BA954E31005CBE17BAEC8B0E69
就算你输入两万言的一篇文章,
你也会得到同一长度的一串符号, 而且只要你改一个字,output 就会不同。此外,你无从去创造另一个 input 去产生同一个 output。
这个过程所得的这一串符号就叫
散列值, 英文叫 hash value. 那个SHA256 就是一个
散列函数 hash function。
这一串符号实际上是一个很大的数字,因为太长所以用十六进来表示,所以除0到9外会有A 到 F。A就是十, B就是十一,F就是十五,而10就是十六。
这一串符号实际上是一个很大的数字,因为太长所以用十六进来表示,所以除0到9外会有A 到 F。A就是十, B就是十一,F就是十五,而10就是十六。
散列函数有什么用呢? 你上网去你的银行处理业务,所用的 password 并不会储存在
银行
的硬碟里,因为银行也怕员工或黑客偷看,
银行只会储存你
password
的散列值。 当你上网登录时银行就把你
输入
的paasword 同样再算一次来比较两个
散列值
是否一样。这样银行 IT 员工或黑客偷看了这散列值也没用,他不可能倒过来去找到你的password。
当然创造这个散列函数的机构要有很高的声誉才能作这样的用途,否则当事人会宁愿自己创造一个。SHA256 只是众多常用的散列函数其中一个, 不过它来头不小,它是NSA ( 美国国家安全局 )所创 立的, 比特币的机制也用到它。
当然创造这个散列函数的机构要有很高的声誉才能作这样的用途,否则当事人会宁愿自己创造一个。SHA256 只是众多常用的散列函数其中一个, 不过它来头不小,它是NSA ( 美国国家安全局 )所创 立的, 比特币的机制也用到它。
另一个应用:比如说A君有一个很重要很长的文件要发给B 君, 那A可以先把
文件
的
散列值
先发给 B,B 收到
文件后再算一次散列值去比较来保证
文件在传送中的完整和
没有被人改动过。
以前有钱人的遗嘱是交給律师保管,现在他们可以把
遗嘱
的
散列值
先告诉給他的儿女。日后他们只要把收到
遗嘱再算一次
散列值
来比较就可确定真伪。
散列函数还有其它的应用,不过那大部份都是在 IT 和密码学的范围。
散列函数还有其它的应用,不过那大部份都是在 IT 和密码学的范围。