openssl dgst -sha256 -hmac 和 JAVA 解决方案不同

问题描述 投票:0回答:1

我想复制:

echo -n "a" | openssl dgst -binary -sha256 -hmac "a"

在 Groovy (Java) 中。 到目前为止我已经做到了:

def sha = Mac.getInstance("HmacSHA256")
SecretKeySpec secret_key = new SecretKeySpec("a".getBytes(), "HmacSHA256")
sha.init(secret_key)
def shaCrypted = new String(sha.doFinal('a'.getBytes()))
println(shaCrypted)

但不幸的是我没有得到相同的结果。

谁能告诉我我错过了什么? 预先感谢!

java command sha256 hmac hmacsha1
1个回答
0
投票

将其转换为十六进制:

byte[] signature = sha.doFinal('a'.getBytes())
StringBuilder sb = new StringBuilder(signature.length * 2);
for(byte b: signature) {
   sb.append(String.format("%02x", b));
}
sb.toString();
© www.soinside.com 2019 - 2024. All rights reserved.