oracle dbms_crypto,DBMS_CRYPTO包对Oracle加密
SQL> DECLARE
2??? input_string???? VARCHAR2(30) := '需要加密的內容';
3??? raw_input??????? RAW(128) := UTL_RAW.CAST_TO_RAW(input_string);
4??? --將需要加密的內容轉換成RAW格式
5??? raw_key????????? RAW(256);
6??? encrypted_raw??? RAW(2048);
7??? encrypted_string VARCHAR2(2048);
8??? decrypted_raw??? RAW(2048);
9??? decrypted_string VARCHAR2(2048);
10
11? BEGIN
12??? dbms_output.put_line('> ========= Get Key Bytes =========');
13
14??? raw_key := dbms_crypto.randombytes(24);
15??? --隨機生成的48位字符密匙
16??? dbms_output.put_line('> Key String length: ' || UTL_RAW.LENGTH(raw_key));
17??? dbms_output.put_line('> Key String: ' || UTL_RAW.CAST_TO_VARCHAR2(raw_key));
18??? dbms_output.put_line('> Input String: ' || input_string);
19??? dbms_output.put_line('> ========= BEGIN TEST Encrypt =========');
20??? --加密
21??? encrypted_raw := dbms_crypto.Encrypt(src => raw_input,
22???????????????????????????????????????? typ => DBMS_CRYPTO.DES3_CBC_PKCS5,
23???????????????????????????????????????? key => raw_key);
24
25??? dbms_output.put_line('> Encrypted hex value : ' || rawtohex(UTL_RAW.CAST_TO_RAW(encrypted_raw)));
26??? dbms_output.put_line('> Encrypted varchar2 value: ' || UTL_RAW.CAST_TO_VARCHAR2(encrypted_raw));
27??? --解密
28??? decrypted_raw := dbms_crypto.Decrypt(src => encrypted_raw,
29???????????????????????????????????????? typ => DBMS_CRYPTO.DES3_CBC_PKCS5,
30???????????????????????????????????????? key => raw_key);
31??? --將解密后的RAW轉換成String
32??? decrypted_string := UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw);
33
34??? dbms_output.put_line('> Decrypted string output : ' || decrypted_string);
35
36??? if input_string = decrypted_string THEN
37????? dbms_output.put_line('> String DES Encyption and Decryption successful');
38??? END if;
39? END;
40? /
> ========= Get Key Bytes =========
> Key String length: 24
> Key String: 峈報T??崛╭顋賣I~漥?篻
> Input String: 需要加密的內容
> ========= BEGIN TEST Encrypt =========
> Encrypted hex value : 374132424133453633303945433530364534414334443943303346343735303643464630393330313436454441443930
> Encrypted varchar2 value: z+f0炁洮M?魎橡?F憝
總結
以上是生活随笔為你收集整理的oracle dbms_crypto,DBMS_CRYPTO包对Oracle加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++ 三维数组 初始化_013 JA
- 下一篇: c语言选择法排序案例,谁能给我一个c语言