欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅析Go 字符串指纹

程序员文章站 2022-03-20 19:02:47
写项目时,有时我们需要缓存, 缓存就会需要唯一的key. 常规是对字符串求md5指纹. 在golang里我们也可以使用, 目前可以计算一个字符串的crc32, md5, sha1的指纹.md5 : 一...

写项目时,有时我们需要缓存, 缓存就会需要唯一的key. 常规是对字符串求md5指纹. 在golang里我们也可以使用, 目前可以计算一个字符串的crc32, md5, sha1的指纹.

md5 : 一种被广泛使用的密码散列函数,可以产bai生出一个128位(du16字节)的散列值(hash value),用于确保信息传输完整一zhi致。md5由美国密码学家罗纳德·李维斯特(ronald linn rivest)设计,于1992年公开,用以取代md4算法。

sha1: sha1是由nistnsa设计为同dsa一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。sha-1基于md5,md5又基于md4。

crc32: 本身是“冗余校验码”的意思,crc32则表示会产生一个32bit(8位十六进制数)的校验值。由于crc32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的crc32值。

golang 实现

md5

sha1

crc32

使用

效率

得出效率: hash_code > md5 > sha1

以上就是浅析go 字符串指纹的详细内容,更多关于go 字符串指纹的资料请关注其它相关文章!