3

署名されたAPIリクエストを認証するために、 AmazonAWSサンプルと同様のコードを使用することを計画しています。したがって、ユーザーは次のようになります。

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

$digestリクエストURIにパラメータとしてアタッチします。サーバー側は同じアルゴリズムを使用してクライアントURIからダイジェストを作成し、それをクライアントから送信された値と比較します。

私が見つけられないのは、HMACSHA256ダイジェストを生成するときに使用する正しい長さのSecretKeyを生成するためのPerlサポートです。

私のAmazonAWSアカウントでは、40ASCII文字のbase64エンコード文字列が提供されています。

クライアント用の適切な秘密鍵を生成するにはどうすればよいですか?

4

1 に答える 1

2

PBKDF2 アルゴリズムを使用することをお勧めします。PBKDF2 = 「パスワードベースのキー派生関数 (#2)」. PKCS #5 ( RFC 2898 ) で定義されています。これは、パスワードからキーを導出するための推奨される方法です。塩も必要です。通常の反復回数は 1000 です。

このページには、PBKDF2 の perl 実装があると書かれています。私はそれを試していません。

どうやら もあるCrypto::PBKDF2ようですが、必要のない依存関係に悩まされています。


編集

pbkdf2 用の Anthony Thyssen の perl プログラムを試してみました。シンプル、簡単。

于 2011-04-25T18:59:54.867 に答える