hmacsha256 java实现_Java和Python生成不同的HmacSHA256输出

本文探讨了在Java和Python中使用HmacSHA256算法生成签名时出现的不同输出问题。Java代码展示了如何计算签名,而Python的输出与Java不一致。问题可能在于密钥的处理或编码方式。寻求帮助找出导致差异的原因。
摘要由CSDN通过智能技术生成

我尝试在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=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值