【发布时间】:2022-01-01 16:03:29
【问题描述】:
可以生成用于 HMAC-SHA256 的对称密钥:
String algorithm = "HmacSHA256";
KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);
keyGenerator.init(256);
SecretKey secretKey = keyGenerator.generateKey();
byte[] key = secretKey.getEncoded();
KMAC 应该使用什么算法名称?
【问题讨论】:
-
为什么需要Keyed Hash函数来生成密钥?根据密码,可以使用 PBKDF2、Scrypt 和 Argon2。或者使用 HKDF 虽然在 JAVA afaik 中不可用。
-
我正在寻找一种常见的 Java 方式来生成适用于指定算法的密钥,这与 HMAC-SHA256(见上文)、AES 等的方式相同。
-
HMAC 密钥应该是统一随机的...为什么不使用SecureRandom 生成
-
我知道我可以使用 SecureRandom。我很好奇是否有使用
KeyGenerator.getInstance()生成此类密钥的内置支持。
标签: java cryptography hmac