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