hmacsha256是对称算法吗_HMAC-SHA256签名计算算法

博主分享了在使用HMAC-SHA256算法生成签名的过程中,代码实现与预期结果的对比。他们通过Java代码展示了如何编码密钥和消息,并得到了与维基百科上相同的结果,但注意到结果前缺少了'0x'前缀。博主正在寻求对代码的评价和可能的改进意见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试使用HMAC-SHA256算法创建签名,这是我的代码。

我正在使用美国ASCII编码。

final Charset asciiCs = Charset.forName("US-ASCII");

final Mac sha256_HMAC = Mac.getInstance("HmacSHA256");

final SecretKeySpec secret_key = new javax.crypto.spec.SecretKeySpec(asciiCs.encode("key").array(), "HmacSHA256");

final byte[] mac_data = sha256_HMAC.doFinal(asciiCs.encode("The quick brown fox jumps over the lazy dog").array());

String result = "";

for (final byte element : mac_data)

{

result += Integer.toString((element & 0xff) + 0x100, 16).substring(1);

}

System.out.println("Result:[" + result + "]");我从上面的代码得到的结果是:

f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8这与维基中显示的相同

HMAC_SHA256("key", "The quick brown fox jumps over the lazy dog") = 0x f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd80x除外。

我正在寻找想法/评论,如果我做的一切正确或可能是我可以改善我的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值