†ハッシュ関数は、対象のデータを固定長のデータ(ハッシュ値*1)に圧縮する機能です。データの改竄を検知したり、DB検索のインデックスに使ったりします。個人情報(パスワード)を保存するときに情報そのものではなくハッシュ値を保存することで、セキュリティを若干上げることができます。最後に「!」が増えました。IROHA.txtこの「3bdf7d~」とか「9c027e~」とかが「ハッシュ値」です。ハッシュ値の特徴としては入力されたデータごとに、異なるハッシュ値となる。同じ入力データならば、同じハッシュ値になる。異なるデータから同一のハッシュ値が生成される(衝突する)可能性は極めて低い。(耐衝突性)ただし、0%にはなら無い。sha1ハッシュの衝突(コリジョン)に成功というニュースがありました。極端な話、アプリが(sha1検査上)本物のファイルですというので開いたら実は偽ファイルでウィルス感染しました、みたいなことができるようになったという話です。†128bitのハッシュ値を出力する。結論から言うと既に安全ではない。ハッシュ値の衝突を利用したファイルの改竄を行う方法が見つかっている。†160bitのハッシュ値を出力する。これも攻撃法が発見済みで安全ではない。†224、256、384、512bitのハッシュ値を出力する。SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256をまとめてSHA-2。SSLやTLS、IPSec、SSH、S/MIMEなどで使われており、SHA-256はDKIMやDNSSECで使われ、CRYPTRECでも採用されている方式。調べたけど安全性は良く分からなかったので(SHA1程度?)、参考程度に。Code:メッセージ認証符号)があり、その実装方法の1つとしてHMACがあります。前述のMD5やSHA1などのハッシュ関数を組み合わせることで、HMAC-MD5、HMAC-SHA1、HMAC-SHA256と呼ばれます。(&諸々の関数)SSLやTLS、IPSecではHMACが使われています。使用して作成しています。使用しています(このサイトについて)。