|
create or replace function ENCRYPT_DES ( p_text varchar2 , p_key varchar2 ) return varchar2 is v_text varchar2 ( 8000 ); v_enc varchar2 ( 8000 ); raw_input RAW ( 128 ) ; key_input RAW ( 128 ) ; decrypted_raw RAW ( 2048 ); begin v_text := rpad ( p_text , ( trunc ( length ( p_text ) /8 ) +1 ) *8 , chr ( 0 )); raw_input := UTL_RAW . CAST_TO_RAW ( v_text ); key_input := UTL_RAW . CAST_TO_RAW ( p_key ); dbms_obfuscation_toolkit . DESEncrypt ( input => raw_input , key => key_input , encrypted_data =>decrypted_raw ); v_enc := rawtohex ( decrypted_raw ); dbms_output . put_line ( v_enc ); return v_enc ; end ; |
|
create or replace function DECRYPT_DES ( p_text varchar2 , p_key varchar2 ) return varchar2 is v_text varchar2 ( 8000 ); begin dbms_obfuscation_toolkit . DESDECRYPT ( input_string => UTL_RAW . CAST_TO_varchar2 ( p_text ), key_string =>p_key , decrypted_string=> v_text ); v_text := rtrim ( v_text , chr ( 0 )); dbms_output . put_line ( v_text ); return v_text ; end ; |
|
CREATE TABLE TABLE_1 ( "C1" VARCHAR2 ( 50 )); |
|
insert INTO "SYSDBA" . "TABLE_1" VALUES ( '1' ); insert INTO "SYSDBA" . "TABLE_1" VALUES ( 'a' ); commit ; |
|
select C1 from TABLE_1 ; |
|
update TABLE_1 set C1 = ENCRYPT_DES ( C1 , 'test#5&124*!de' ); COMMIT ; |
|
select DECRYPT_DES ( C1 , 'test#5&124*!de' ) from TABLE_1 ; |
|
CREATE TABLE TABLE_2 ( "C1" VARCHAR2 ( 50 )); |
|
insert INTO "SYSDBA" . "TABLE_2" VALUES ( ' 张三 ' ); insert INTO "SYSDBA" . "TABLE_2" VALUES ( ' 李四 ' ); commit ; |
|
select C1 from TABLE_2 ; |
|
update TABLE_2 set C1 = replace ( ASCIISTR ( C1 ), '\' , '%u' ); COMMIT ; |
|
select UNISTR ( replace ( C1 , '%u' , '\' )) from TABLE_2 ; |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949798/viewspace-2679245/ ,如需转载,请注明出处,否则将追究法律责任。