哈希的英文叫hash,是一种把任意长度的输入,通过计算转换成固定长度的输出的计算方法。输入可以是包括文字或数字在内的任意数据信息,而输出通常只会有数字和英文,而且根据格式不同,比较容易搞混淆的英文数字会被放弃不用,比如数字的0和英文大写字母的O,还有数字的1和英文小写字母的l。
哈希函数拥有几个十分有用的特性,所以被广泛应用在各种暗号计算领域。
其中之一就是针对各种不同的输入会产生不同的输出,哪怕输入值只是有一点点十分微妙的不同,得到的输出值也会完完全全不一样。相反,如果输入值是一样的话,任何情况下计算得到的输出值都能保证是一样的。
另一个特性是哈希值计算的不可逆性和验证时的迅速性。
具体来说就是,拥有一个输出值想得到输入值的话,几乎不可能,但是相反,如果有输出值的话,立即就能得到与之对应的输出值。这个特性就被充分发挥在比特币的认证过程上,当某一个矿工宣布他发现了哈希值,其他矿工可以十分简单的验证这个哈希值是不是正确的输出。
最后是哈希值的计算方式。计算方式有很多种,比如md5,sha128等。现在被广泛利用的是sha256。随着计算机性能的不断提高,被破解的可能性会变大,所以哈希计算的计算方法也必须不断的升级,而且部分旧的计算方法也会被淘汰。
本文作者为U赞发烧友小斌哥
领取专属 10元无门槛券
私享最新 技术干货