md5的32位字符怎么hash成10进制数
发布于 8 年前 作者 blackjack 6620 次浏览 来自 问答

用户登录账户的md5字符串做为用户的唯一ID,分表存数据时用用户的ID hash一个数(0,1,2,3,4,5,6,7,8,9)中的一个就是要保存的表的标示,怎么生成这个数字,node有库吗

11 回复

自定义 hash function 即可。

加起来取余可以吧

Number.parseInt( hash ,16)

别用 md5 啊,字符串哈希成 int 有很多算法的。

$ npm install --save -d bling-hashes

https://www.npmjs.com/package/bling-hashes

多谢各位 @xadillax 为了唯一性 选择了md5, @yjhjstz 自定义hash 有demo吗,参考参考

@blackjack 你确定 md5 是唯一的?

@blackjack 我上面给你的包就是成熟的自定义哈希函数。

md5 存在理论上碰撞可能。

@xadillax 多谢 , 用户名是唯一的 md5后肯定是唯一的

@blackjack 理论上即使用户名唯一md5后也有碰撞的可能性的

回到顶部