1. ホーム
  2. php

[解決済み】非暗号化用途で最も高速なハッシュは?

2022-04-15 22:07:49

質問

基本的にデータベースに入れるフレーズを準備しているのですが、それらは不正確な場合があるので、代わりに短いハッシュを保存したいのです(私はそれらが存在するかどうかを単純に比較するので、ハッシュが理想的です)。

MD5は10万回以上のリクエストではかなり遅いと思うので、フレーズのハッシュ化に最適な方法を知りたかったんです。 hash('md4', '...' の方が結局は速いのでしょうか?

MySQLにはMD5()があるので、クエリ側で少しスピードを補うことができると思いますが、もしかしたら私の知らないもっと速いハッシュ関数がMySQLにあり、PHPで動作するのかもしれません...。

解決方法は?

CRC32はかなり高速で、そのための関数もある。 http://www.php.net/manual/en/function.crc32.php

しかし、CRC32はMD5やSHA-1ハッシュよりも衝突が多いことに注意する必要があります。これは単に長さが短い(128ビットに比べて32ビットはそれぞれ160ビット)ためです。しかし、保存された文字列が破損しているかどうかをチェックするだけなら、CRC32で問題ないでしょう。