Oracle
DBMS_CRYPTO code listings
Oracle DBMS_CRYPTO
package
allows a user to encrypt and decrypt Oracle
data. Oracle DBMS_CRYPTO supports the
National Institute of Standards and
Technology (NIST) approved Advanced
Encryption Standard (AES) encryption
algorithm. Oracle DBMS_CRYPTO also supports
Data Encryption Standard (DES), Triple DES
(3DES, 2-key and 3-key), MD5, MD4, and SHA-1
cryptographic hashes, and MD5 and SHA-1
Message Authentication Code (MAC).
DBMS_CRYPTO can encrypt most common Oracle
datatypes including RAW and large objects
(LOBs), as well as BLOBs and CLOBs.
dbms_crypto
Code Listing - A simple encryption function
using dbms_crypto
1 create or replace function get_enc_val
2 (
3 p_in in varchar2,
4 p_key in raw
5 )
6 return raw is
7 l_enc_val raw (2000);
8 l_mod number := dbms_crypto.ENCRYPT_AES128
9 + dbms_crypto.CHAIN_CBC
10 + dbms_crypto.PAD_PKCS5;
11 begin
12 l_enc_val := dbms_crypto.encrypt
13 (
14 UTL_I18N.STRING_TO_RAW
15 (p_in, 'AL32UTF8'),
16 l_mod,
17 p_key
18 );
19 return l_enc_val;
20* end;
dbms_crypto
Code Listing - A simple decryption function
using dbms_crypto
1 create or replace function get_dec_val
2 (
3 p_in in raw,
4 p_key in raw
5 )
6 return varchar2
7 is
8 l_ret varchar2 (2000);
9 l_dec_val raw (2000);
10 l_mod number :=
dbms_crypto.ENCRYPT_AES128
11 + dbms_crypto.CHAIN_CBC
12 + dbms_crypto.PAD_PKCS5;
13 begin
14 l_dec_val := dbms_crypto.decrypt
15 (
16 p_in,
17 l_mod,
18 p_key
19 );
20 l_ret:= UTL_I18N.RAW_TO_CHAR
21 (l_dec_val, 'AL32UTF8');
22 return l_ret;
23* end;
For more information on
dbms_crypto and dbms_crypto related
algorithms, see these related links:
|
|