小编use*_*744的帖子

VBA 中的 HMAC-SHA1 URL 加密产生不正确的输出

对于 Google Maps Business API 查询,我需要使用 HMAC-SHA1 对每个查询进行数字签名。我们使用带有 VBA 宏的 Excel 文件来发送查询并解析输出,因此我想在 VBA 中创建签名。我发现这个问题 + 答案:VBA 中的 Base64 HMAC SHA1 字符串
但是,当查询发送到 Google API 时,此代码的字符串签名无效。

Google 提供了一些示例脚本。我使用与测试上面的 VBA 代码相同的输入测试了Python 示例脚本,并且 Python 代码确实返回了一个有效的签名。所以似乎提供的 VBA 代码没有构建正确的 HMAC-SHA1 签名,但我找不到问题(我没有加密经验,只有基本的 VBA 知识)。

我创建了一个 HMAC-SHA1 密钥用于测试目的:1412SxPev45oMMRQSXazwQp789yM=
当使用“ abc”作为字符串输入运行时,我得到以下返回:

VBA 代码:Fsu0z3i6Ma5HCrP3eXucrdssJLc=
Python 代码:IFxkS7B_ePtZrvU8sGmiaipTHio=

有谁知道如何在 VBA 中计算一个正确的 HMAC-SHA1,它等于 Python 输出?

编辑 03/04/2014:
根据 Alex K. 的建议,我确保使用以下代码将 SharedSecretKey 解码为 Base64http://thydzik.com。我将该函数添加DecodeBase64到下面的 VBA 代码中。
由于此输出是正确的,但还不是 URL 安全的(因此与 …

.net python encryption vba hmacsha1

5
推荐指数
1
解决办法
1144
查看次数

标签 统计

.net ×1

encryption ×1

hmacsha1 ×1

python ×1

vba ×1