1. ホーム
  2. bash

[解決済み] bashでHMAC-SHA1

2022-09-20 10:28:52

質問

を生成するためのbashスクリプトはありますか? HMAC-SHA1 のハッシュを生成するbashスクリプトはありますか?

以下のPHPコードに相当するものを探しています。

hash_hmac("sha1", "value", "key");

どのように解決するのですか?

私はこれがあなたが求めているものではないことに気づきましたが、車輪の再発明とbashのバージョンを書くことに意味がありません。

あなたは単に openssl コマンドを使用して、スクリプト内でハッシュを生成することができます。

[me@home] echo -n "value" | openssl dgst -sha1 -hmac "key"
57443a4c052350a44638835d64fd66822f813319

あるいは単純に

[me@home] echo -n "value" | openssl sha1 -hmac "key"
57443a4c052350a44638835d64fd66822f813319

を使うことを忘れないようにしましょう。 -necho にしないと、改行文字が文字列に追加され、データとハッシュが変わってしまいます。

このコマンドはOpenSSLパッケージから来るもので、Linux/UnixやCygwinなどの選択において、すでにインストールされている(または簡単にインストールできる)はずです。

古いバージョンの openssl (RHEL4 に同梱されているような) 古いバージョンでは -hmac オプションが提供されていないかもしれません。


別の解決策として、しかし主に結果が同じであることを証明するために、PHPの hmac_sha1() をコマンドラインから呼び出すこともできます。

[me@home]$ echo '<?= hash_hmac("sha1", "value", "key") ?>' | php
57443a4c052350a44638835d64fd66822f813319