指定された値をハッシュ形式で返します。
HASH( string-expression[, algorithm ] )
string-expression ハッシュされる文字列。大文字と小文字を区別しないデータベース定義であっても、パラメータの大文字と小文字は区別されます。
algorithm ハッシュに使用するアルゴリズム。可能な値には MD5、SHA1、SHA1_FIPS、SHA256、SHA256_FIPS があります。デフォルトでは、MD5 アルゴリズムが使用されます。
FIPS アルゴリズムは、Certicom の FIPS 140-2 基準を満たしたソフトウェアを使用するシステムでのみ使用されます。
VARCHAR
ハッシュを使用すると、値は、関数に渡されたそれぞれの値に対してユニークなバイト・シーケンスに変換されます。
サーバを -fips オプションを使用して起動すると、使用されるアルゴリズムや動作は次のように異なる可能性があります。
SHA1 を指定する場合、SHA1_FIPS が使用されます。
SHA256 を指定する場合、SHA256_FIPS が使用されます。
MD5 を指定する場合、エラーが返されます。
使用するアルゴリズムごとに返される型を次に示します。
すべてのアルゴリズムは一方向のハッシュです。ハッシュから元の文字列を再作成することはできません。
SQL/2003 ベンダ拡張。
次の例は、ユーザ ID やパスワードなど、アプリケーションのユーザに関する情報を格納するテーブル user_info を作成します。テーブルにはローが 1 つ挿入されます。パスワードは、HASH 関数と SHA256 アルゴリズムを使用してハッシュされます。この方法でハッシュ済みパスワードを格納する方法は、クリア・テキストでパスワードを格納せず、パスワードの比較を必要とする外部アプリケーションがある場合に有効です。
CREATE TABLE user_info ( employee_id INTEGER NOT NULL PRIMARY KEY, user_name CHAR(80), user_pwd CHAR(80) ); INSERT INTO user_info VALUES ( '1', 's_phillips', HASH( 'mypass', 'SHA256' ) ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |