键控哈希对有换行的密文处理似乎不正确

使用问题 · 526 次浏览
blanka 创建于 2024-05-02 03:54

使用第三方网站(https://encode.chahuo.com/)和百度签名工具(https://cloud.baidu.com/signature/index.html)测试同样的密文和密钥,如果密文无换行结果相同,有换行时quicker与前二者结果不一样

CL 最后更新于 2024/5/4

回复内容
CL 2024-05-02 08:27
#1

方便的话请发下测试数据以及第三方网站的测试截图,我这里测试下看看。
如果有示例动作更好,谢谢。

CL 最后更新于 2024-05-02 09:27
blanka 回复 CL 2024-05-02 14:51 :

百度签名计算:


中间结果2是使用SecretAccessKey作为密文对authStringPrefix进行HMAC-SHA-256-HEX计算,第三方网站和quicker的结果均一致:

第三方网站结果:

quicker结果:


中间结果3是使用signingKey(也就是中间结果2)作为密文对canonicalRequest(也就是中间结果1)进行HMAC-SHA-256-HEX计算,

第三方网站测试与其一致:


quicker结果不一致:




blanka 最后更新于 2024-05-02 22:23
blanka 回复 CL 2024-05-02 14:53 :

可能是quicker默认的换行符与系统的不太一样吧,如果是这样还请加个选择换行符的功能

CL 2024-05-03 17:47
#2

我测试了一下,这个应该是换行符号不同的问题,

windows默认的换行符号是\r\n,在改成\n之后,和网页里的结果对比一致。



blanka 回复 CL 2024-05-04 04:38 :

可以直接编辑换行符就好,感谢!

CL 回复 blanka 2024-05-04 08:09 :

这个主要看内容在哪里,如果内容是输入进去的,就会有\r\n,可以放在变量里,在进行哈希之前替换一下换行符。

$= {text}.Replace("\r\n", "\n")

CL 最后更新于 2024-05-04 08:09
回复主贴