DBMS_OBFUSCATION_TOOLKIT は、RAW および VARCHAR2 データの型の暗号化、復号、およびハッシュ値の計算をサポートする関数とストアドプロシージャを提供します。
DBMS_OBFUSCATION_TOOLKIT の機能は DBMS_CRYPTO に完全に含まれています。したがって、DBMS_CRYPTO を使用することをお勧めします。
サブプログラム
サブプログラム | 説明 |
DESEncrypt 関数/プロシージャ | DES アルゴリズムを使用してデータを暗号化します |
DESDecrypt 関数/プロシージャ | DES アルゴリズムを使用してデータを復号します |
DES3Encrypt 関数/プロシージャ | 3DES アルゴリズムを使用してデータを暗号化します |
DES3Decrypt 関数/プロシージャ | 3DES アルゴリズムを使用してデータを復号します |
MD5 関数/プロシージャ | データの MD5 ハッシュ値を計算します |
DESGetKey 関数/プロシージャ | DES 暗号鍵を生成します |
DES3GetKey 関数/プロシージャ | 3DES 暗号鍵を生成します |
DESEncrypt、DESDecrypt、DES3Encrypt、DES3Decrypt、DESGetKey、および DES3GetKey の関数とプロシージャは、クラスター Oracle syntax compatibility 2.0 (マイナーエンジンバージョン 2.0.14.17.34.0 以降) でのみサポートされています。
DESEncrypt 関数
DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを暗号化します。
VARCHAR2
構文
FUNCTION DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
input_string | 暗号化する VARCHAR2 データ。 |
key_string | VARCHAR2 暗号鍵。 |
RAW
構文
FUNCTION DESEncrypt(input IN RAW,
key IN RAW)
RETURN RAW;パラメーター
パラメーター | 説明 |
input | 暗号化する RAW データ。 |
key | RAW 暗号鍵。 |
例
DECLARE
input_data RAW(100);
key_data RAW(8);
encrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Hello World');
key_data := UTL_RAW.CAST_TO_RAW('12345678');
encrypted_data := DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(
input => input_data,
key => key_data
);
DBMS_OUTPUT.PUT_LINE('Encrypted RAW: ' || encrypted_data);
END;DESEncrypt プロシージャ
DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを暗号化します。
VARCHAR2
構文
PROCEDURE DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2);パラメーター
パラメーター | 説明 |
input_string | 暗号化する VARCHAR2 データ。 |
key_string | VARCHAR2 暗号鍵。 |
encrypted_string | 出力パラメーター、暗号化された VARCHAR2 データ。 |
RAW
構文
PROCEDURE DESEncrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW);パラメーター
パラメーター | 説明 |
input | 暗号化する RAW データ。 |
key | RAW 暗号鍵。 |
encrypted_data | 出力パラメーター、暗号化された RAW データ。 |
例
DECLARE
input_str VARCHAR2(100) := 'Hello World';
key_str VARCHAR2(8) := '12345678';
encrypted_str VARCHAR2(200);
BEGIN
DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(
input_string => input_str,
key_string => key_str,
encrypted_string => encrypted_str
);
DBMS_OUTPUT.PUT_LINE('Original: ' || input_str);
DBMS_OUTPUT.PUT_LINE('Encrypted: ' || encrypted_str);
END;DESDecrypt 関数
DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを復号します。
VARCHAR2
構文
FUNCTION DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
input_string | 復号する VARCHAR2 データ。 |
key_string | VARCHAR2 復号鍵。 |
RAW
構文
FUNCTION DESDecrypt(input IN RAW,
key IN RAW)
RETURN RAW;パラメーター
パラメーター | 説明 |
input | 復号する RAW データ。 |
key | RAW 復号鍵。 |
例
DECLARE
input_str VARCHAR2(100) := 'Hello World';
key_str VARCHAR2(8) := '12345678';
encrypted_str VARCHAR2(200);
decrypted_data VARCHAR2(200);
BEGIN
encrypted_str := DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(
input_string => input_str,
key_string => key_str
);
decrypted_data := DBMS_OBFUSCATION_TOOLKIT.DESDecrypt(
input_string => encrypted_str,
key_string => key_str
);
DBMS_OUTPUT.PUT_LINE('Original: ' || input_str);
DBMS_OUTPUT.PUT_LINE('Decrypted: ' || decrypted_data);
END;DESDecrypt プロシージャ
DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを復号します。
VARCHAR2
構文
PROCEDURE DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2);パラメーター
パラメーター | 説明 |
input_string | 復号する VARCHAR2 データ。 |
key_string | VARCHAR2 復号鍵。 |
decrypted_string | 出力パラメーター、復号された VARCHAR2 データ。 |
RAW
構文
PROCEDURE DESDecrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW);パラメーター
パラメーター | 説明 |
input | 復号する RAW データ。 |
key | RAW 復号鍵。 |
decrypted_data | 出力パラメーター、復号された RAW データ。 |
例
DECLARE
input_data RAW(100);
key_data RAW(8);
encrypted_data RAW(200);
decrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Hello World');
key_data := UTL_RAW.CAST_TO_RAW('12345678');
DBMS_OBFUSCATION_TOOLKIT.DESEncrypt(
input => input_data,
key => key_data,
encrypted_data => encrypted_data
);
DBMS_OBFUSCATION_TOOLKIT.DESDecrypt(
input => encrypted_data,
key => key_data,
decrypted_data => decrypted_data
);
DBMS_OUTPUT.PUT_LINE('Input RAW: ' || input_data);
DBMS_OUTPUT.PUT_LINE('Decrypted RAW: ' || decrypted_data);
END;DES3Encrypt 関数
3DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを暗号化します。
VARCHAR2
構文
FUNCTION DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
input_string | 暗号化する VARCHAR2 データ。 |
key_string | VARCHAR2 暗号鍵。 |
which | 3DES モードを指定します:
|
iv_string | 初期化ベクター |
RAW
構文
FUNCTION DES3Encrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL)
RETURN RAW;パラメーター
パラメーター | 説明 |
input | 暗号化する RAW データ。 |
key | RAW 暗号鍵。 |
which | 3DES モードを指定します:
|
iv | 初期化ベクター |
例
DECLARE
input_data RAW(100);
key_data RAW(100);
encrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Sensitive Data');
key_data := UTL_RAW.CAST_TO_RAW('1234567890123456');
encrypted_data := DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(
input => input_data,
key => key_data,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode
);
DBMS_OUTPUT.PUT_LINE('3DES Encrypted RAW: ' || encrypted_data);
END;DES3Encrypt プロシージャ
3DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを暗号化します。
VARCHAR2
構文
PROCEDURE DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL);パラメーター
パラメーター | 説明 |
input_string | 暗号化する VARCHAR2 データ。 |
key_string | VARCHAR2 暗号鍵。 |
encrypted_data | 出力パラメーター、暗号化された VARCHAR2 データ。 |
which | 3DES モードを指定します:
|
iv_string | 初期化ベクター |
例
DECLARE
input_str VARCHAR2(100) := 'Sensitive Data';
key_str VARCHAR2(100) := '1234567890123456'; -- 16-character key
encrypted_str VARCHAR2(200);
BEGIN
DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(
input_string => input_str,
key_string => key_str,
encrypted_string => encrypted_str,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode
);
DBMS_OUTPUT.PUT_LINE('Original: ' || input_str);
DBMS_OUTPUT.PUT_LINE('3DES Encrypted: ' || encrypted_str);
END;RAW
構文
PROCEDURE DES3Encrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL);パラメーター
パラメーター | 説明 |
input | 暗号化する RAW データ。 |
key | RAW 暗号鍵。 |
encrypted_data | 出力パラメーター、暗号化された RAW データ。 |
which | 3DES モードを指定します:
|
iv | 初期化ベクター |
例
DECLARE
input_data RAW(100);
key_data RAW(100);
encrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Sensitive Data');
key_data := UTL_RAW.CAST_TO_RAW('123456789012345678901234');
DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(
input => input_data,
key => key_data,
encrypted_data => encrypted_data,
which => DBMS_OBFUSCATION_TOOLKIT.ThreeKeyMode
);
DBMS_OUTPUT.PUT_LINE('3DES Encrypted RAW: ' || encrypted_data);
END;DES3Decrypt 関数
3DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを復号します。
VARCHAR2
構文
FUNCTION DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
input_string | 復号する VARCHAR2 データ。 |
key_string | VARCHAR2 復号鍵。 |
which | 3DES モードを指定します:
|
iv_string | 初期化ベクター |
RAW
構文
FUNCTION DES3Decrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL)
RETURN RAW;パラメーター
パラメーター | 説明 |
input | 復号する RAW データ。 |
key | RAW 復号鍵。 |
which | 3DES モードを指定します:
|
iv | 初期化ベクター |
例
DECLARE
input_data RAW(100);
key_data RAW(100);
encrypted_data RAW(200);
decrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Sensitive Data');
key_data := UTL_RAW.CAST_TO_RAW('1234567890123456');
encrypted_data := DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(
input => input_data,
key => key_data,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode
);
decrypted_data := DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt(
input => encrypted_data,
key => key_data,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode
);
DBMS_OUTPUT.PUT_LINE('3DES Input RAW: ' || input_data);
DBMS_OUTPUT.PUT_LINE('3DES Decrypted RAW: ' || decrypted_data);
END;DES3Decrypt プロシージャ
3DES アルゴリズムを使用して VARCHAR2 または RAW 型のデータを復号します。
VARCHAR2
構文
PROCEDURE DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL);パラメーター
パラメーター | 説明 |
input_string | 復号する VARCHAR2 データ。 |
key_string | VARCHAR2 復号鍵。 |
decrypted_string | 出力パラメーター、復号された VARCHAR2 データ。 |
which | 3DES モードを指定します:
|
iv_string | 初期化ベクター |
RAW
構文
PROCEDURE DES3Decrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL);パラメーター
パラメーター | 説明 |
input | 復号する RAW データ。 |
key | RAW 復号鍵。 |
decrypted_data | 出力パラメーター、復号された RAW データ。 |
which | 3DES モードを指定します:
|
iv | 初期化ベクター |
例
DECLARE
input_data RAW(100);
key_data RAW(100);
encrypted_data RAW(200);
decrypted_data RAW(200);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Sensitive Data');
key_data := UTL_RAW.CAST_TO_RAW('1234567890123456');
DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt(
input => input_data,
key => key_data,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode,
encrypted_data => encrypted_data
);
DBMS_OBFUSCATION_TOOLKIT.DES3Decrypt(
input => encrypted_data,
key => key_data,
which => DBMS_OBFUSCATION_TOOLKIT.TwoKeyMode,
decrypted_data => decrypted_data
);
DBMS_OUTPUT.PUT_LINE('3DES Input RAW: ' || input_data);
DBMS_OUTPUT.PUT_LINE('3DES Decrypted RAW: ' || decrypted_data);
END;MD5 関数
VARCHAR2 または RAW 型のデータの MD5 ハッシュ値を計算します。
VARCHAR2
構文
FUNCTION md5(input_string IN VARCHAR2) RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
input | ハッシュ値を計算する VARCHAR2 データ。 |
例
DECLARE
input_str VARCHAR2(100) := 'Hello World';
hash_result VARCHAR2(100);
BEGIN
hash_result := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => input_str);
DBMS_OUTPUT.PUT_LINE('Input: ' || input_str);
DBMS_OUTPUT.PUT_LINE('MD5 Hash: ' || hash_result);
END;RAW
構文
FUNCTION md5(input IN RAW) RETURN RAW;パラメーター
パラメーター | 説明 |
input | ハッシュ値を計算する RAW データ。 |
例
DECLARE
input_data RAW(100);
hash_result RAW(100);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Hello World');
hash_result := DBMS_OBFUSCATION_TOOLKIT.MD5(input => input_data);
DBMS_OUTPUT.PUT_LINE('Input RAW: ' || input_data);
DBMS_OUTPUT.PUT_LINE('MD5 Hash RAW: ' || hash_result);
END;MD5 プロシージャ
VARCHAR2 または RAW 型のデータの MD5 ハッシュ値を計算します。
VARCHAR2
構文
PROCEDURE md5(input_string IN VARCHAR2, checksum_string INOUT VARCHAR2);パラメーター
パラメーター | 説明 |
input_string | ハッシュ値を計算する VARCHAR2 データ。 |
checksum_string | 出力パラメーター、VARCHAR2 型、MD5 ハッシュ値を返します。 |
例
DECLARE
input_str VARCHAR2(100) := 'Hello World';
hash_result VARCHAR2(100);
BEGIN
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => input_str, checksum_string => hash_result);
DBMS_OUTPUT.PUT_LINE('Input: ' || input_str);
DBMS_OUTPUT.PUT_LINE('MD5 Hash: ' || hash_result);
END;RAW
構文
PROCEDURE md5(input IN RAW, checksum INOUT RAW);パラメーター
パラメーター | 説明 |
input | ハッシュ値を計算する RAW データ。 |
checksum | 出力パラメーター、RAW 型、MD5 ハッシュ値を返します。 |
例
DECLARE
input_data RAW(100);
hash_result RAW(100);
BEGIN
input_data := UTL_RAW.CAST_TO_RAW('Hello World');
DBMS_OBFUSCATION_TOOLKIT.MD5(input => input_data, checksum => hash_result);
DBMS_OUTPUT.PUT_LINE('Input RAW: ' || input_data);
DBMS_OUTPUT.PUT_LINE('MD5 Hash RAW: ' || hash_result);
END;DESGetKey 関数
VARCHAR2 または RAW フォーマットのデータ用の DES 暗号鍵を生成します。
VARCHAR2
構文
FUNCTION DESGetKey(seed_string IN VARCHAR2) RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
seed | キーの生成に使用されるオプションのシード値。 |
例
DECLARE
des_key VARCHAR2(100);
custom_seed VARCHAR2(10) := 'myseed123';
BEGIN
des_key := DBMS_OBFUSCATION_TOOLKIT.DESGetKey(seed_string => custom_seed);
DBMS_OUTPUT.PUT_LINE('Generated DES Key with seed: ' || des_key);
END;RAW
構文
FUNCTION DESGetKey(seed IN RAW) RETURN RAW;パラメーター
パラメーター | 説明 |
seed | キーの生成に使用されるオプションのシード値。 |
例
DECLARE
des_key RAW(100);
custom_seed RAW(10);
BEGIN
custom_seed := UTL_RAW.CAST_TO_RAW('myseed123');
des_key := DBMS_OBFUSCATION_TOOLKIT.DESGetKey(seed => custom_seed);
DBMS_OUTPUT.PUT_LINE('Generated DES Key RAW with seed: ' || des_key);
END;DESGetKey プロシージャ
VARCHAR2 または RAW フォーマットのデータ用の DES 暗号鍵を生成します。
VARCHAR2
構文
PROCEDURE DESGetKey(seed_string IN VARCHAR2,
key OUT VARCHAR2);パラメーター
パラメーター | 説明 |
seed_string | キーの生成に使用されるオプションのシード値。 |
key | 出力パラメーター、生成されたキー。 |
例
DECLARE
des_key VARCHAR2(100);
custom_seed VARCHAR2(10) := 'myseed123';
BEGIN
DBMS_OBFUSCATION_TOOLKIT.DESGetKey(seed_string => custom_seed, key => des_key);
DBMS_OUTPUT.PUT_LINE('Generated DES Key with seed: ' || des_key);
END;RAW
構文
PROCEDURE DESGetKey(seed IN RAW,
key OUT RAW);パラメーター
パラメーター | 説明 |
seed | キーの生成に使用されるオプションのシード値。 |
key | 出力パラメーター、生成されたキー。 |
例
DECLARE
des_key RAW(100);
custom_seed RAW(10);
BEGIN
custom_seed := UTL_RAW.CAST_TO_RAW('myseed123');
DBMS_OBFUSCATION_TOOLKIT.DESGetKey(seed => custom_seed, key => des_key);
DBMS_OUTPUT.PUT_LINE('Generated DES Key RAW with seed: ' || des_key);
END;DES3GetKey 関数
VARCHAR2 または RAW フォーマットのデータ用の 3DES 暗号鍵を生成します。
VARCHAR2
構文
FUNCTION DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed_string IN VARCHAR2)
RETURN VARCHAR2;パラメーター
パラメーター | 説明 |
which | 3DES モードを指定します:
|
seed_string | キーの生成に使用されるオプションのシード値。 |
例
DECLARE
des3_key VARCHAR2(100);
custom_seed VARCHAR2(10) := 'myseed123';
BEGIN
des3_key := DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(
which => DBMS_OBFUSCATION_TOOLKIT.ThreeKeyMode,
seed => custom_seed
);
DBMS_OUTPUT.PUT_LINE('Generated 3DES ThreeKey: ' || des3_key);
END;RAW
構文
FUNCTION DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed IN RAW)
RETURN RAW;パラメーター
パラメーター | 説明 |
which | 3DES モードを指定します:
|
seed | キーの生成に使用されるオプションのシード値。 |
例
DECLARE
des3_key RAW(100);
custom_seed RAW(10);
BEGIN
custom_seed := UTL_RAW.CAST_TO_RAW('myseed123');
des3_key := DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(
which => DBMS_OBFUSCATION_TOOLKIT.ThreeKeyMode,
seed => custom_seed
);
DBMS_OUTPUT.PUT_LINE('Generated 3DES ThreeKey RAW: ' || des3_key);
END;DES3GetKey プロシージャ
VARCHAR2 または RAW フォーマットのデータ用の 3DES 暗号鍵を生成します。
VARCHAR2
構文
PROCEDURE DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed_string IN VARCHAR2,
key OUT VARCHAR2);パラメーター
パラメーター | 説明 |
which | 3DES モードを指定します:
|
seed_string | キーの生成に使用されるオプションのシード値。 |
key | 出力パラメーター、生成されたキー。 |
例
DECLARE
des3_key VARCHAR2(100);
custom_seed VARCHAR2(10) := 'myseed123';
BEGIN
DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(
which => DBMS_OBFUSCATION_TOOLKIT.ThreeKeyMode,
seed => custom_seed,
key => des3_key
);
DBMS_OUTPUT.PUT_LINE('Generated 3DES ThreeKey: ' || des3_key);
END;RAW
構文
PROCEDURE DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed IN RAW,
key OUT RAW);パラメーター
パラメーター | 説明 |
which | 3DES モードを指定します:
|
seed | キーの生成に使用されるオプションのシード値。 |
key | 出力パラメーター、生成されたキー。 |
例
DECLARE
des3_key RAW(100);
custom_seed RAW(10);
BEGIN
custom_seed := UTL_RAW.CAST_TO_RAW('myseed123');
DBMS_OBFUSCATION_TOOLKIT.DES3GetKey(
which => DBMS_OBFUSCATION_TOOLKIT.ThreeKeyMode,
seed => custom_seed,
key => des3_key
);
DBMS_OUTPUT.PUT_LINE('Generated 3DES ThreeKey RAW: ' || des3_key);
END;