用于为HMAC SHA256签名生成密钥的Perl代码?

时间:2011-04-25 18:36:48

标签: perl hmac sha256 secret-key

我打算使用类似于Amazon AWS samples的代码来验证已签名的API请求。所以用户会有类似的东西:

use Digest::SHA qw(hmac_sha256_base64);
my $digest = hmac_sha256_base64 ($request, $self->{SecretKey});

并将$digest作为参数附加到其请求URI。服务器端将使用相同的算法从客户端URI创建摘要,并将其与客户端发送的值进行比较。

我无法找到 Perl 支持生成在生成HMAC SHA256摘要时使用的正确长度的SecretKey。

对于我的Amazon AWS账户,我将获得一个40个ASCII字符的base64编码字符串。

如何为我的客户生成正确的密钥?

1 个答案:

答案 0 :(得分:1)

我建议你使用PBKDF2算法。 PBKDF2 =“基于密码的密钥派生函数(#2)”。它在PKCS#5(RFC 2898)中定义。这是从密码派生密钥的推荐方法。你也需要一块盐。典型的迭代计数为1000.

This page表示它具有PBKDF2的perl实现。我没试过。

显然还有一个Crypto::PBKDF2,但它背负着你可能不想要的依赖。


编辑

我刚尝试过Anthony Thyssen的pbkdf2 perl程序 - 它运行得很好。简单,容易。