我想复制:
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)
但不幸的是我没有得到相同的结果。
谁能告诉我我错过了什么? 预先感谢!
将其转换为十六进制:
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();