gpt4 book ai didi

java - 如何减小 SHA1 的大小?

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:25 25 4
gpt4 key购买 nike

我有一个问题,也许是一个愚蠢的问题,我想在用 SHA1 算法散列后将数据存储在数据库中。但是,在未来某个时间,数据库中的大小会增加,因为 SHA1 中的大小字很大。

我们能否减少 SHA1 算法的大小,也许大小减半。对于我愚蠢的问题和我糟糕的英语,我深表歉意。谢谢。 :D

我正在使用 JAVA。

最佳答案

每个散列 20 个字节(假设二进制存储)真的太多了吗?如果您当前使用十六进制编码,切换到二进制可为每个哈希节省 20 个字节。与十六进制相比,Base64 节省了大约 10 个字节。

如果您只是截断一个加密散列,它仍然是一个很好的加密散列,但输出大小减小了。您需要的输出大小取决于您的应用。

针对随机更改的完整性检查可以使用更短的 32-64 位散列,并且不需要加密散列函数。

如果您需要唯一性,您应该在散列中包含 >>2*log_2(entries) 位(参见 birthday paradox )。大约 120 位,它类似于 GUID/UUID(GUID 有一个基于 sha1 的生成模式)

如果您想要加密强度,我会避免低于 128 位。

关于java - 如何减小 SHA1 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6250662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com