日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle dbms_crypto,DBMS_CRYPTO包对Oracle加密

發布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。