我需要一个加密安全的哈希函数,它具有与MD5类似的属性,即:128位大小并且速度很快。由于MD5本身现在非常破碎,我想使用另一个哈希。 SHA1实际上比MD5更快,至少在我的计算机上(在你的计算机上尝试openssl speed md5 sha1
),所以我想我可以从SHA1输出中取出前128位并完成。但是,我不确定安全和碰撞的影响。
<子> P.S。关于良好的快速128位散列替代方案的替代建议也是受欢迎的,即使它们有点超出了原始问题的范围。
答案 0 :(得分:2)
是的,您可以从SHA1输出中取出前128位并完成。
如果您真的担心通过哈希为短输入分配位,请在输入后添加一些填充数据或盐。这将有助于确保整个哈希结果中输入位的均匀分布。