我尝试在Python中生成与Java模板中相同的Hmac-SHA256签名。但是Python脚本生成的输出不同。我找不到我的错误。有人能帮我吗?在
爪哇public class Main {
public static void main(String[] args) {
String paramString = "teststring";
calculateSignature(hash(paramString));
}
private static byte[] hash(String paramString)
{
MessageDigest localMessageDigest = MessageDigest.getInstance("SHA-256");
localMessageDigest.update(paramString.getBytes("UTF-8"));
byte[] paramByte = localMessageDigest.digest();
System.out.println("Hash: " + DatatypeConverter.printBase64Binary(paramByte));
return paramByte;
}
public static void calculateSignature(byte[] paramArrayOfByte)
{
String Algor = "HmacSHA256";
Mac localMac = Mac.getInstance(Algor);
byte [] key = "secretkey".getBytes();
localMac.init(new SecretKeySpec(key, Algor));
paramArrayOfByte = localMac.doFinal(paramArrayOfByte);
System.out.println("Signature: " + DatatypeConverter.printBase64Binary(paramArrayOfByte));
}
}Hash: PIcn4BmkK0RGZ6WHtgASUb7K2ruza/7YCHqSwYiC0RE=
Signature: X8V4RA7qaoVGz5K2l61gAXNPuLkAI7NZ9/9d7WnblbA=
Python
^{pr2}$
Hash: PIcn4BmkK0RGZ6WHtgASUb7K2ruza/7YCHqSwYiC0RE=
Signature: NE8RtuFsOtafWrwDdlzILMgqCDm2huJ9A3IO6iy44Jc=