将此代码从 python 翻译成 java

Translating this code from python to java

我正在尝试将这段 python 代码翻译成 java,但是到目前为止我还没有成功。

hmac_key = base64.b64decode(secret)
digest = hmac.new(hmac_key, message.encode('utf-8'), digestmod=hashlib.sha256).digest()
signature = base64.b64encode(digest).decode('utf-8')

这是我当前的 java 实现。

byte[] hmac_key = base64().decode(secret);
String hash = Hashing.hmacSha256(hmac_key).hashString(message, StandardCharsets.UTF_8).toString();
String updatedMsg = base64().encode(hash.getBytes(StandardCharsets.UTF_8));

为什么这两段代码 return 输出不同?

您正在对生成的哈希调用 toString() 方法,而不是使用 asBytes()

byte[] hmacKey = base64().decode(secret);
byte[] hash = Hashing.hmacSha256(hmacKey).hashString(message, StandardCharsets.UTF_8).asBytes();
String updatedMsg = base64().encode(hash);