select sys.DBMS_CRYPTO.HASH( utl_raw.cast_to_raw(v_string), v_type) from dual;
example:
select sys.DBMS_CRYPTO.HASH(UTL_I18N.STRING_TO_RAW ('tata toto titi','AL32UTF8'), 3) from dual;
select sys.DBMS_CRYPTO.HASH( utl_raw.cast_to_raw('tata toto titi'), 3) from dual;
select sys.DBMS_CRYPTO.HASH( utl_raw.cast_to_raw('tata toto titi'), 3) from dual;
variables:
- v_type can be 1 (MD4), 2 (MD5), 3 (SH1)
- v_string has to be converted using utl_raw.cast_to_raw or UTL_I18N.STRING_TO_RAW.
references:
http://psoug.org/reference/dbms_crypto.html
Encrypt in AES 128: The code bellow will encrypt tha string "tata titi toto":
DECLARE
enc_val RAW(2000);
l_key RAW(2000);
l_key_len NUMBER := 128/8; -- convert bits to bytes
l_mod NUMBER := dbms_crypto.ENCRYPT_AES128
+ dbms_crypto.CHAIN_CBC + dbms_crypto.PAD_ZERO;
BEGIN
l_key := dbms_crypto.randombytes(l_key_len);
enc_val := dbms_crypto.encrypt(
utl_i18n.string_to_raw('tata titi toto', 'AL32UTF8'),
l_mod, l_key);
dbms_output.put_line(enc_val);
END;
/
Or just with a select:
select dbms_crypto.encrypt(
utl_i18n.string_to_raw('tata titi toto', 'AL32UTF8'),
6 + 256 + 4096,
dbms_crypto.randombytes(128/8)
)
from dual
The 6 + 256 + 4096 represents dbms_crypto.ENCRYPT_AES128 + dbms_crypto.CHAIN_CBC + dbms_crypto.PAD_ZERO
No comments:
Post a Comment