浅析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 字符串指纹的资料请关注其它相关文章!
上一篇: 【问题探索日志】python 函数优化
下一篇: Nginx配置实现下载文件的示例代码