簡體   English   中英

將 hmac function 從 python 轉換為 Java

[英]Convert hmac function from python to Java

我想將下面的 python 代碼轉換為相同的 java 代碼。 我不確定如何使用 java 獲得相同的結果。 我嘗試在 apache 編解碼器 package 中使用 hmacutils 但結果不一樣。 python 代碼:

import hmac
import hashlib
secret_key = b"NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
total_params = b"/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY"
signature = hmac.new(secret_key, total_params, hashlib.sha384).hexdigest()
print("signature = {0}".format(signature))

使用 commons-codec:commons-codec:1.15

final byte[] key = "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j".getBytes(StandardCharsets.UTF_8);
final Mac initializedMac = HmacUtils.getInitializedMac(HmacAlgorithms.HMAC_SHA_384, key);
final byte[] bytes = "/public/api/ver1/accounts/new?type=binance&name=binance_account&api_key=XXXXXX&secret=YYYYYY".getBytes(StandardCharsets.UTF_8);
initializedMac.update(bytes);
final byte[] digest = initializedMac.doFinal();
System.out.println(Hex.encodeHexString(digest));

給我 output 匹配該 python 片段的 output

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM