假设我们需要/更喜欢 128 位哈希输出,例如生成 128 位加密密钥,或者在其他应用程序(例如文件完整性验证)中消耗更少的存储空间。
我不知道任何新的/标准的/完整的 128 位散列函数,所以看来我们必须使用 SHA256。
将 SHA256 输出截断为 128 位是否可以接受?这种截断的散列是否具有等于 128 位散列的安全性?我的意思是没有已知漏洞的 128 位哈希;绝对不是MD5!
我有一个想法如何做到这一点:
MD5(Truncate128(SHA256_hash))
我不知道这是否会对安全性产生任何好处/损害。