我正在尝试用 iv 计算 HMAC(没有任何额外的密钥)。我需要在“初始化”级别传递它。我知道通常不需要传递 iv,因为 hmac/sha 有默认的 iv。但是,如果我不想使用默认值,并且想提供我自己的 iv,那么如何在 java 中实现呢?我试过使用 javax,但它的 MAC init 只接受签名密钥。
例如:
Mac hmac = Mac.getInstance("HmacSHA1");
byte[] hmacKeyBytes = key.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(hmacKeyBytes, "HmacSHA1");
hmac.init(secretKey);
- 我想用一些 iv 值来初始化。但不知道如何。
我指的是用于启动 hash/hmac 迭代过程的初始值。通常它是一些任意的数字,不会暴露给用户。我希望能够更改散列函数的默认初始化向量/找到一些方法来提供我自己的 iv。我该怎么做?
谢谢!