MySQL に SHA1 ハッシュを保存する: BINARY(20) または VARCHAR(40)?

Mary-Kate Olsen
リリース: 2024-11-20 20:11:18
オリジナル
694 人が閲覧しました

 Storing SHA1 Hashes in MySQL: BINARY(20) or VARCHAR(40)?

MySQL に SHA1 ハッシュ値を保存する: VARCHAR フィールドの長さはどれくらいにする必要がありますか?

SHA1 ハッシュの結果を MySQL に保存する場合データベースでは、VARCHAR フィールドの適切な長さを決定することが重要です。 SHA1 値は 160 ビット長であるため、この長さに対応できるフィールドに格納する必要があります。

この記事では、長さ分の追加バイトが無駄になるため、SHA1 ハッシュ値の格納に VARCHAR フィールドを使用することに反対しています。固定長フィールドの。代わりに、スペースを無駄にすることなく 160 ビット SHA1 値を格納できる 20 文字の長さの BINARY(20) フィールドを使用することを推奨しています。

さらに、この記事では、UNHEX 関数を使用して SHA1 を変換することを提案しています。値を BINARY フィールドに格納する前にバイナリに変換します。これにより、生の SHA1 値を保存する場合と比較して、ストレージ要件が軽減されます。

この記事の最後では、BINARY(20) フィールドと CHAR(40) フィールドのストレージ要件を比較しています。 InnoDB エンジンを使用する場合、100 万レコードの場合、BINARY(20) は CHAR(40) よりも必要なスペースが少なくなります。

以上がMySQL に SHA1 ハッシュを保存する: BINARY(20) または VARCHAR(40)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート