gpt4 book ai didi

java相当于php的hmac-SHA1

转载 作者:IT老高 更新时间:2023-10-28 20:33:43 25 4
gpt4 key购买 nike

我正在寻找与此 php 调用等效的 java:

hash_hmac('sha1', "test", "secret")

我试过这个,使用 java.crypto.Mac ,但两人不同意:

String mykey = "secret";
String test = "test";
try {
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(mykey.getBytes(),"HmacSHA1");
mac.init(secret);
byte[] digest = mac.doFinal(test.getBytes());
String enc = new String(digest);
System.out.println(enc);
} catch (Exception e) {
System.out.println(e.getMessage());
}

key = "secret"和 test = "test"的输​​出似乎不匹配。

最佳答案

事实上他们确实同意。
正如 Hans Doggen 已经指出的那样,除非您将原始输出参数设置为 true,否则 PHP 使用十六进制表示法输出消息摘要。
如果你想在 Java 中使用相同的符号,你可以使用类似

for (byte b : digest) {
System.out.format("%02x", b);
}
System.out.println();

相应地格式化输出。

关于java相当于php的hmac-SHA1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609899/

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