Gia*_*omo 10 hash md5 sha1
我需要一个哈希算法,输出一个长度最多为20个字符的字母数字字符串.我的意思是"字母数字" [a-zA-Z0-9].
[a-zA-Z0-9]
输入是规范形式的UUID(示例550e8400-e29b-41d4-a716-446655440000)
550e8400-e29b-41d4-a716-446655440000
另一种方法是有一种方法将SHA1或MD5哈希转换为具有这些限制的字符串吗?
谢谢.
编辑
不需要加密安全.碰撞会使数据不准确,但如果它们偶尔发生,我就可以忍受它.
编辑2
我不知道截断MD5或SHA1会不会经常发生冲突.现在我想知道是否最好将MD5值或SHA1值截断为20个字符.
phi*_*hag 17
只需从GUID的哈希中剪切您不需要的字符.使用良好的散列函数,散列的任何部分的不可预测性与部件的大小成比例.如果你愿意,你可以将它编码为32而不是标准的十六进制16.请记住,这不会显着改善每个字符的熵(仅为25%).
对于非加密用途,是否截断MD5,SHA1或SHA2并不重要.熵也没有任何明显的缺陷.
归档时间:
15 年 前
查看次数:
12967 次
最近记录:
12 年,5 月 前