DECRYPT¶
DECRYPT
関数またはプロシージャは、ユーザー指定の暗号アルゴリズム、キー、およびオプションの初期化ベクトルを使用してデータを復号化します。 DECRYPT
関数のシグネチャは次のとおりです。
DECRYPT
(<src> IN RAW, <typ> IN INTEGER, <key> IN RAW, <iv> IN RAW
DEFAULT NULL) RETURN RAW
DECRYPT
プロシージャのシグネチャは次のとおりです。
DECRYPT
(<dst> INOUT BLOB, <src> IN BLOB, <typ> IN INTEGER, <key> IN RAW,
<iv> IN RAW DEFAULT NULL)
または
DECRYPT
(<dst> INOUT CLOB, <src> IN CLOB, <typ> IN INTEGER, <key> IN RAW,
<iv> IN RAW DEFAULT NULL)
プロシージャとして呼び出されると、 DECRYPT
は BLOB
または CLOB
のデータをユーザー指定の BLOB
に返します。
Parameters
dst
dst
は、DECRYPT
プロシージャの出力が書き込まれるBLOB
の名前を指定します。DECRYPT
手順は、dst
に現在ある既存のデータを上書きします。
src
src
は、復号化されるソースデータを指定します。関数としてDECRYPT
を呼び出す場合は、RAW
データを指定します。手順としてDECRYPT
を呼び出す場合は、BLOB
またはCLOB
のデータを指定します。
typ
typ
は、ブロック暗号タイプと修飾子を指定します。これは、src
が暗号化されたときに指定されたタイプと一致する必要があります。AdvancedServerは、次のブロック暗号アルゴリズム、修飾子、および暗号スイートをサポートしています。
Block Cipher Algorithms |
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Block Cipher Modifiers |
|
|
|
|
|
Block Cipher Padding Modifiers |
|
|
|
|
|
Block Cipher Suites |
|
|
|
|
|
|
|
key
key
は、ユーザー定義の復号化キーを指定します。これは、src
が暗号化されたときに指定されたキーと一致する必要があります。
iv
iv
(オプション)は初期化ベクトルを指定します。src
が暗号化されたときに初期化ベクトルが指定された場合、src
を復号化するときに初期化ベクトルを指定する必要があります。デフォルトはNULL
です。
Examples
次の例では、 DBMS_CRYPTO.DECRYPT
関数を使用して、 passwords
テーブルから取得した暗号化パスワードを復号化します。
CREATE TABLE passwords
(
principal VARCHAR2(90) PRIMARY KEY, -- username
ciphertext RAW(9) -- encrypted password
);
CREATE FUNCTION get_password(username VARCHAR2) RETURN RAW AS
typ INTEGER := DBMS_CRYPTO.DES_CBC_PKCS5;
key RAW(128) := 'my secret key';
iv RAW(100) := 'my initialization vector';
password RAW(2048);
BEGIN
SELECT ciphertext INTO password FROM passwords WHERE principal = username;
RETURN dbms_crypto.decrypt(password, typ, key, iv);
END;
DECRYPT
を呼び出すときは、 ENCRYPTING
がターゲットのときに使用されたものと同じ暗号タイプ、キー値、および初期化ベクトルを渡す必要があることに注意してください。