Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
指定されたキーを使用して文字列を復号化し、LONG BINARY 値を返します。
DECRYPT( string-expression, key [, algorithm ] )
algorithm : 'AES' | 'AES256' | 'AES_FIPS' | 'AES256_FIPS' [ format ] format: ( FORMAT=RAW [;padding ] ) [ initialization-vector ] ) padding: PADDING=PKCS5 | ZEROES | NONE ]
string-expression 復号化される文字列。この関数にはバイナリ値を渡すこともできます。大文字と小文字を区別しないデータベース定義であっても、パラメータの大文字と小文字は区別されます。
key string-expression の復号化に必要な暗号化キー (文字列)。暗号化された元の値を取得するには、このキーの値が、string-expression の暗号化に使用された暗号化キーと同じである必要があります。大文字と小文字を区別しないデータベース定義であっても、パラメータの大文字と小文字は区別されます。
データベースに強力な暗号化を適用した場合、暗号化キーのコピーを必ず安全な場所に保管してください。暗号化キーがわからなくなった場合は、Sybase 製品の保守契約を結んでいるサポートセンタに依頼してもデータにはアクセスできません。アクセスできなくなったデータベースは、廃棄して、新しくデータベースを作成する必要があります。
algorithm このオプションのパラメータでは、string-expression の暗号化に使用されたアルゴリズムを指定します。
FORMAT=RAW このオプションのパラメータは、複合化されるデータをロー形式に指定します。initialization-vector パラメータが必要となります。
padding データの暗号化に使用された埋め込みのタイプを指定します。padding が指定されない場合、デフォルトで PKCS5 が使用されます。
サポートされる埋め込みフォーマットは次のとおりです。
PKCS5 PKCS#5 アルゴリズムを使用してデータが埋め込まれます。複合化されたデータに埋め込みが含まれます。
ZEROES データにゼロ (0) が埋め込まれます。複合化されるデータにゼロ (0) が埋め込まれます。
NONE データへの埋め込みは行われません。複合化されたデータに埋め込みが含まれません。
initialization-vector データの暗号化に使用された初期化ベクトルを指定します。このパラメータは必須です。
LONG BINARY
DECRYPT 関数を使用して、ENCRYPT 関数で暗号化された string-expression を復号化できます。データがロー形式でない場合、この関数は入力文字列と同じバイト数の LONG BINARY 値を返します。FORMAT=RAW の場合、返される値の長さは埋め込みフォーマットによって異なります。
string-expression を正常に復号化するには、データの暗号化に使用したのと同じ暗号化キーを使用します。FORMAT=RAW の場合は、データの暗号化に使用したものと同じ initialization-vector と埋め込みフォーマットを使用する必要があります。ロー形式のデータは、データベースサーバ外で複合化することができます。
FORMAT=RAW が指定されていない場合は、不正な暗号化キーを指定するとエラーが生成されます。FORMAT=RAW を指定して不正な暗号化キーまたは不正な初期化ベクトルを指定すると、複合化が警告なしに失敗します。
データに強力な暗号化を適用した場合、暗号化キーのコピーを必ず安全な場所に保管してください。暗号化キーがわからなくなった場合は、Sybase 製品の保守契約を結んでいるサポートセンタに依頼してもデータにはアクセスできません。
FIPS 認定の暗号化をサポートしないプラットフォームもあります。サポートされるプラットフォームのリストについては、 http://www.sybase.com/detail?id=1061806を参照してください。
SQL/2008 ベンダー拡張。
次の例は、user_info テーブルにあるユーザのパスワードを復号化します。DECRYPT 関数は値を LONG BINARY データ型に変換して判読不能にするため、パスワードを CHAR データ型に変換するには CAST 関数を使用します。
SELECT CAST( DECRYPT( user_pwd, '8U3dkA' ) AS CHAR(100) ) FROM user_info;
次の例は、ロー形式を使用して暗号化されたデータを複合化するものです。データは、暗号化キー TheEncryptionKey と初期化ベクトル ThisIsTheIV を使用して暗号化されています。
SELECT DECRYPT( binary_data, 'TheEncryptionKey', 'AES(format=raw;padding=zeroes)', 'ThisIsTheIV'), LENGTH(binary_data) FROM SensitiveData;