java - 如何设置 MessageDigest 种子?

标签 java sha1 seed message-digest

MessageDigest 类实现了 SHA-1 算法(以及许多其他算法)。 SHA-1 算法允许使用不同的“种子”或初始摘要。参见 SHA-1 Psuedocode

算法初始化变量,或种子:

Initialize variables:
h0 = 0x67452301
h1 = 0xEFCDAB89
h2 = 0x98BADCFE
h3 = 0x10325476
h4 = 0xC3D2E1F0

但是 MessageDigest 类,如 Online Java Manual 中所述, 不提供用于设置这些初始变量的 API。事实上,它并没有说明初始变量的值。

如何设置 SHA-1 算法的初始种子?

哪里有 Java 中的 SHA-1 示例,使用初始种子
(我正在寻找 SHA-1 实现,除非该示例使用带有替代初始种子的 MessageDigest。)

最佳答案

您认为 SHA-1 摘要中哪里需要种子?通常在需要随机数源的加密算法中,“需要种子”。但在 SHA-1 中,您甚至根本不使用随机数,因此没有种子或初始 vector 可设置。您提到的变量是“硬”(常量),它们是算法的一部分,不需要或用于更改 h0-4 的值。

关于java - 如何设置 MessageDigest 种子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3407554/

相关文章:

java - 如何在 JFrame 中放置一个表格和 3 个按钮

hash - 了解sha-1碰撞的弱点

c++ - 设置种子 boost::随机

database - 何时以及如何使用 Laravel Factory 和 Seeding

mysql 为 rand 设置种子

java - 检查 radio 组为空/空

java - 我可以在商业项目中使用 OrmLite 吗?

java - 如何让 FeignClient 使用名称而不是 url?

windows - 为什么在 windows 或 linux 下对同一个文件使用不同的 SHA-1?

perl - 在 PERL 中将 SHA1 十六进制转换为 base64 编码(对于 Apache htpasswd)