Golang与散列算法
· 阅读需 9 分钟
介绍散列算法的基本特征、常见类型,以及在 Go 中的应用。

散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。常用于保证数据完整性
单向散列函数一般用于产生消息摘要,密钥加密等,常见的有
- MD5(Message Digest Algorithm 5):是
RSA数据安全公司开发的一种单向散列算法 - SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个
160位的数值
哈希函数的基本特征
哈希函数不是加密算法,其特征为单向性和唯一性
具体如下
- 输入可以是任意长度
- 输出是固定长度
- 根据输入很容易计算出输出
- 根据输出很难计算出输入(几乎不可能)
- 两个不同的输入几乎不可能得到相同的输出