我想准确地构建一个函数,它生成一个带有密钥的 HMAC,就像这个网站提供的那样:
http://www.freeformatter.com/hmac-generator.html
Java 8 库仅提供 MessageDigest 和 KeyGenerator,它们都只支持最高 SH256。
此外,谷歌没有给我任何生成 HMAC 的实施结果。
有人知道实现吗?
我有这段代码可以生成一个普通的 SH256,但我想这对我帮助不大:
public static String get_SHA_512_SecurePassword(String passwordToHash) throws Exception {
String generatedPassword = null;
MessageDigest md = MessageDigest.getInstance("SHA-512");
byte[] bytes = md.digest(passwordToHash.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
System.out.println(generatedPassword);
return generatedPassword;
}
原文由 PowerFlower 发布,翻译遵循 CC BY-SA 4.0 许可协议
希望这可以帮助:
要从字节数组转换为十六进制,请参考此 stackoverflow 答案: 此处