MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのSHA256ハッシュの長さは?保存に適したデータ型も解説

SHA256ハッシュの長さについて

その名前のとおり、「SHA256」が生成するハッシュ値は256ビット長です。ここで重要なのは、これをどのように文字列として保存するかという点です。

一般的に、ハッシュ値は16進数表記で扱われます。16進数では1文字(1桁)あたり4ビットを表現できるため、256ビットを16進数で表すには以下の計算が必要になります。

256 ÷ 4 = 64文字

つまり、SHA256ハッシュを保存するカラムには、varchar(64) または char(64) を指定すれば十分です。固定長の char(64) を使えば、わずかに効率面でのメリットが期待できます。

サンプルテーブルの作成

実際にSHA256ハッシュを保存するためのテーブルを作成してみましょう。

mysql> create table SHA256Demo
    -> (
    -> Password char(64)
    -> );
Query OK, 0 rows affected (0.54 sec)

レコードの挿入

次に、64文字のSHA256ハッシュ値をテーブルに挿入します。

mysql> insert into SHA256Demo values('a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e');
Query OK, 1 row affected (0.18 sec)

登録データの確認

すべてのレコードを表示して、正しく保存されているか確認します。

mysql> select * from SHA256Demo;

実行結果は以下のとおりです。

+------------------------------------------------------------------+
| Password                                                         |
+------------------------------------------------------------------+
| a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e |
+------------------------------------------------------------------+
1 row in set (0.00 sec)

まとめ

  • SHA256は名前のとおり256ビット長のハッシュアルゴリズムである。
  • 16進数表記では1文字が4ビットに相当するため、ハッシュ値は64文字になる。
  • 保存用カラムには char(64)varchar(64) を使えば足りる。

  1. MySQLルートパスワードをリセットまたは変更する方法【ALTER USERコマンド解説】

    MySQLのrootパスワードをリセットまたは変更するには、まず管理者モードでMySQLにログインする必要があります。ログイン後、mysqlデータベースに切り替えて、登録されているすべてのユーザーとホスト情報を確認できます。 1. ユーザー一覧の確認 以下のクエリを実行して、現在存在するユーザーとホストの一覧を表示します。 SELECT user,host FROM user; 実行結果は次のとおりです。 +------------------+-----------+ | user | host | +------------------+------

  2. MySQLコマンドラインでSQLステートメントの実行時間を確認する方法

    MySQLコマンドラインでの実行時間の確認方法MySQLのコマンドラインでは、実行した各ステートメントに対して、その処理にかかった正確な時間が自動的に表示されます。特別な設定やコマンドは不要で、クエリを実行するだけで結果とともに実行時間を確認できます。ここでは、実際にテーブルを作成して動作を確認してみましょう。1. テーブルの作成まず、create table文でテーブルを作成します。mysql> create table DemoTable1589 -> ( -> EmployeeId int, -> EmployeeName varchar(