将此代码从 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);
我正在尝试将这段 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);