36.12 ハッシュ関数
2 つの文字列またはファイルが同一であるかどうかを確認する必要があることがよくあります。これは、文字ごとに比較して違いを探すことによって実行できます。ただし、この方法は時間がかかる可能性があるため、文字列またはファイルのハッシュを比較すると、ファイルが異なるかどうかをすばやく確認できます。
ハッシュ関数のもう 1 つの用途は、ファイルの整合性をチェックすることです。ユーザーは、ファイルのハッシュを既知の値と比較し、所有しているファイルが元のハッシュが生成されたファイルと同じかどうかを確認できます。
Octave はhash、文字列とファイルのハッシュ値を計算する関数を提供します。後者は、fileread 関数と組み合わせて使用します。このhash関数は、一般的に使用される多くのハッシュ メソッドをサポートしています。
: hashval = hash ("hashfcn", str)
ハッシュ関数 hashfcnを使用して文字列strのハッシュ値を計算します。
利用可能なハッシュ関数は以下の表に示されています。
'MD2'
メッセージダイジェストアルゴリズム 2 (RFC 1319)。
'MD4'
メッセージダイジェストアルゴリズム 4 (RFC 1320)。
'MD5'
メッセージダイジェストアルゴリズム 5 (RFC 1321)。
'SHA1'
セキュアハッシュアルゴリズム1 (RFC 3174)
'SHA224'
セキュアハッシュアルゴリズム 2 (224 ビット、RFC 3874)
'SHA256'
セキュアハッシュアルゴリズム 2 (256 ビット、RFC 6234)
'SHA384'
セキュアハッシュアルゴリズム 2 (384 ビット、RFC 6234)
'SHA512'
セキュアハッシュアルゴリズム 2 (512 ビット、RFC 6234)
たとえば、文字列の MD5 ハッシュ値を計算するには、 "abc"関数hashは次のように呼び出されます。
hash ("md5", "abc")
-| ans = 900150983cd24fb0d6963f7d28e17f72
同じ文字列の場合、SHA-1 ハッシュ値は次のように計算されます。
hash ("sha1", "abc")
-| ans = a9993e364706816aba3e25717850c26c9cd0d89d
また、たとえばファイルのハッシュ値を計算するには、と組み合わせてfile = "file.txt"呼び出します。 hashfileread
hash ("md5", fileread (file));