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 を復号化するときに同じキーと初期化ベクトルを指定します。