使用散列函数的N个第一位来获得N位散列

时间:2013-07-14 10:33:10

标签: cryptography md5 sha1 hash-collision

我需要一个加密安全的哈希函数,它具有与MD5类似的属性,即:128位大小并且速度很快。由于MD5本身现在非常破碎,我想使用另一个哈希。 SHA1实际上比MD5更快,至少在我的计算机上(在你的计算机上尝试openssl speed md5 sha1),所以我想我可以从SHA1输出中取出前128位并完成。但是,我不确定安全和碰撞的影响。

  1. 这样的哈希函数是不是比真正的128位哈希函数更安全吗?
  2. 这样的哈希函数是否比真正的128位哈希函数更容易发生冲突?
  3. <子> P.S。关于良好的快速128位散列替代方案的替代建议也是受欢迎的,即使它们有点超出了原始问题的范围。

1 个答案:

答案 0 :(得分:2)

是的,您可以从SHA1输出中取出前128位并完成。

如果您真的担心通过哈希为短输入分配位,请在输入后添加一些填充数据或盐。这将有助于确保整个哈希结果中输入位的均匀分布。