gpt4 book ai didi

java - hmac init 的 iv 值与 java 中的默认值不同

转载 作者:行者123 更新时间:2023-12-02 12:53:54 25 4
gpt4 key购买 nike

我正在尝试使用 iv 计算 HMAC(无需任何附加 key )。我需要在“init”级别传递它。我知道通常不需要传递 iv,因为 hmac/sha 有默认的 iv。但是如果我不想使用默认值,并且想提供我自己的iv,那么如何在java中实现呢?我尝试过使用 javax,但它的 MAC init 只接受签名 key 。

例如:

Mac hmac = Mac.getInstance("HmacSHA1");
byte[] hmacKeyBytes = key.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(hmacKeyBytes, "HmacSHA1");
hmac.init(secretKey);
  • 我想用一些 iv 值进行初始化。但不知道怎么办。

我指的是用于启动 hash/hmac 迭代过程的初始值。通常它是一些任意数字,不暴露给用户。我希望能够更改哈希函数的默认初始化 vector/找到某种方法来提供我自己的 iv。我该怎么做?

谢谢!

最佳答案

HMAC 仅采用 key 作为初始参数。有效 - 相同的内容应该具有相同的身份验证标签,因此根据定义不需要/不需要 IV。

据我所知,具有非静态 IV 的密码学类会导致某些算法实现的 MAC/HMAC 漏洞,但我不再记得详细信息了(您可以在 stackoverflow https://crypto.stackexchange.com/ 的密码学部分询问) 。

如果您确实想要某种 IV,您仍然可以将 IV 添加到内容前面。

关于java - hmac init 的 iv 值与 java 中的默认值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515189/

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