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