Oracle加密解密


一、定义DES加密函数

加密函数:encrypt_des

CREATE OR REPLACE FUNCTION encrypt_des(p_text VARCHAR2, p_key VARCHAR2)
  RETURN VARCHAR2 IS
  v_text        VARCHAR2(4000);
  v_enc         VARCHAR2(4000);
  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;

二、定义DES解密函数

解密函数:

CREATE OR REPLACE FUNCTION decrypt_des(p_text VARCHAR2, p_key VARCHAR2)
  RETURN VARCHAR2 IS
  v_text VARCHAR2(2000);
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;

三、测试

3.1、加密测试

select encrypt_des('18772637634', 'tzq12345') from dual;

在这里插入图片描述
得到结果:80223CE4389D8BC1C866FDA7BF4811A5

3.2、解密测试

select decrypt_des('80223CE4389D8BC1C866FDA7BF4811A5', 'tzq12345') from dual;

在这里插入图片描述
得到结果:18772637634

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tzq@2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值