GitHubからバイナリをダウンロードすると、リリースページにSHA-256チェックサムが記載されています。それを検証するために、ターミナルを開いてshasum -a 256 ~/Downloads/file.tar.gzと入力し、計算が終わるのを待ち、64文字の16進数文字列を2つ、手動で並べて比較します。1文字でも間違えれば、ファイルが破損しているのか、単にハッシュを読み違えたのか区別がつきません。
あるいは、キャッシュキーやGravatarのURL、あるいは今でもMD5署名を使っているレガシーAPIのために、文字列のMD5ハッシュを生成する必要があるかもしれません。コマンドはmacOSではmd5 -s "text"ですが、Linuxではmd5sumです。わずかな違いですが、システムを切り替えるたびに作業を遅らせるには十分です。
ターミナルでのハッシュ化——動くには動くが
macOSにはmd5、shasum、openssl dgstが同梱されており、ほとんどのアルゴリズムをカバーしています。しかし、それぞれのツールには独自の構文があります。md5は文字列入力に-sを使います。shasumはアルゴリズムを選択するのに-aを使います。openssl dgstは-sha256や-md5をフラグとして必要とします。マニュアルページを確認せずに、アルゴリズムを選んで文字列をハッシュ化できる単一のコマンドは存在しません。
たまにハッシュが必要になる開発者にとって、こうした違いを覚えておく認知的負担は、作業自体の単純さに見合いません。
1回の貼り付けでハッシュを生成
Bellowsには、MD5、SHA-1、SHA-256、SHA-384、SHA-512、その他一般的なアルゴリズムに対応したハッシュジェネレーターが含まれています。入力を入力または貼り付けてアルゴリズムを選択すれば、ハッシュが即座に表示されます。覚えておくべきフラグも、調べるべき構文もありません。
ダウンロードの検証
リリースページでチェックサムが提供されている場合、ダウンロードしたファイルと比較したくなります。視覚的なツールでハッシュを生成すれば、ターミナルウィンドウで2つの文字列を目視するよりも比較が簡単になります——特に64文字のSHA-256ハッシュでは。
API署名とキャッシュキー
一部のAPIは、リクエスト認証にHMACやハッシュベースの署名を要求します。他のAPIは、キャッシュキーやコンテンツ識別子としてMD5やSHAのハッシュを使用します。リクエストボディや文字列のハッシュを素早く生成できれば、デバッグ中に実装が期待される値と一致しているかを検証できます。
オフラインでプライベート
ハッシュ化する入力には、パスワードやAPIシークレット、社内識別子といった機密データが含まれることがあります。Bellowsはネットワークアクセスなしで完全にMac上で動作するため、ハッシュ化したものがマシンの外に出ることは一切ありません。