私は php (7.2) で sha3 ハッシュを使用しており、MySQL でも引き続き使用する予定でしたが、MySQL はまだそれらをサポートしていません。
独自の UDF を作成してそれを呼び出した場合、たとえば、 のようにしますsha3
が、将来の MySQL バージョンでネイティブsha3
関数が追加された場合、どうなりますか?
競合の可能性を避けるために、とにかく別の名前を付けることにしますが、これは最終的にどの関数でも発生する可能性があるため、確かに興味があります。
MySQL での sha3 サポートを探している人がいる場合に備えて、ネイティブの sha2 関数とまったく同じように機能することを目的とした rhash を使用して、まさにそれを行う MySQL UDF を作成しました。ここからダウンロードできます (インストールと使用方法の説明はコメントにあります)。https://gist.github.com/BrianLeishman/a0f40e7a0a87a7069c5c56a768ff3179
また、sha3 は sha2 よりも高速であるはずですが (私が思うに)、私の関数はネイティブ sha2 の 4 倍遅い (100,000 ハッシュを生成する場合) ことは注目に値しますが、将来のネイティブ sha3 がその問題を解決することを願っています。
と呼ばれる 16 進エンコーディングなしでハッシュを返すための別の UDF を追加しましたunhex_sha3
。これは文字通り として機能する必要があります。16 進エンコーディングとその逆の間の無意味な変換を回避できるため、unhex(sha3(...
このバージョンはほぼ正確にネイティブ速度です ( と比較して)。sha2
https://gist.github.com/BrianLeishman/d7903a4acba75707c05fc581e1c714c3