首页 > 数据库 >Oracle定义DES加密解密及MD5加密函数示例

Oracle定义DES加密解密及MD5加密函数示例

时间:2023-09-20 14:05:39浏览次数:43  
标签:加密 示例 text DES raw varchar2 RAW key input


(1)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;



(2)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)MD5加密函数



CREATE OR REPLACE FUNCTION MD5(passwd IN VARCHAR2)
RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
RETURN retval;
END;



(4)函数使用示例

DES加密: update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');

DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s

MD5加密: update tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);

标签:加密,示例,text,DES,raw,varchar2,RAW,key,input
From: https://blog.51cto.com/u_16242566/7536800

相关文章

  • AnyDesk局域网IP地址端口连接
    介绍在联网的环境下启动AnyDesk之后,会自动分配得到一个AnyDesk地址(一串六位数字或者机器名@AD格式,如654321或skying@ad),如图,别人可以通过这个”地址”连接到你的电脑。AnyDesk地址是在两个不同地方用的,但是在同一个路由器的局域网下,这样显然是不友好的(A机到AnyDesk服......
  • iptables使用示例
    iptable的各种targetiptables的结构:iptables由上而下,由Tables,Chains,Rules组成。一、iptables的表tables与链chainsiptables有Filter,NAT,Mangle,Raw四种内建表:1.Filter表Filter是iptables的默认表,它有以下三种内建链(chains):INPUT链 –处理来自外部的数据。OUTPUT链......
  • JS加密参数的解决办法
    基本上所有前端加密都是用的CryptoJS库,因此可以通过特征函数定位加密函数。比如CryptoJS要求加密时需要对key(密钥)进行解析(parse)后才能作为参数,因此所有需要加密的地方均会调用enc.Utf8.parse函数,比如​​即便是webpack打包的前端代码,这个函数名也不会被混淆为abcd之类的名字,所......
  • 硬件加密
    https://baike.baidu.com/item/硬件加密/10535094硬件加密定义:使用待加密的电子产品之外的硬件电路与待加密的电子产品进行通讯,让产品内部程序通过通讯数据来判断自己是否应该继续执行程序。硬件加密是通过专用加密芯片或独立的处理芯片等实现密码运算。将加密芯片、专有电子钥......
  • 给文件加密解密的过程
    加密:tar-czvf-mcw.txt|openssldes3-salt-k'<a?VU<a{sfm*sf1'-outxiaoma.des3解密:openssldes3-d-k'<a?VU<a{sfm*sf1'-salt-inxiaoma.des3|tarxzvf-  ➜machangweimkdirmcwtest➜machangweicdmcwtest➜mcw......
  • Arco Design中Table添加cell边框
    在ArcoDesign组件库中,table组件默认只有行的边框,如下图:文档中bordered属性的描述:那么我们给bordered添加{cell:true}即可,修改代码如下:<a-table:bordered="{cell:true}":columns="columns":data="tableData"/>......
  • 远程连接服务器时出现“这可能是由于CredSSP加密数据库修正”的错误提示的解决办法
    当我们远程连接服务器时,有时候会出现以下提示,从而导致我们无法成功连接服务器,如下所述:原因:远程桌面使用的是“凭据安全支持提供程序协议(CredSSP)”,这个协议在未修补的版本中是存在漏洞的。于是微软在2018年3月13日在补丁中解决了这个问题,但是默认并没有强制使用新的......
  • 软件测试|MySQL 外连接的详细解析与示例
    简介在关系型数据库中,表之间常常存在着关联关系。MySQL提供了多种连接操作,其中之一是外连接(LEFTJOIN和RIGHTJOIN)。本文将深入探讨MySQL中左外连接和右外连接的概念、语法以及使用示例。外连接(LEFTJOIN和RIGHTJOIN)的概念外连接是一种用于从两个表中检索相关数据的SQL操作。它可......
  • 线程劫持-进程注入C++示例和检测思考
    线程劫持:运行方法C:\Users\l00379637\source\repos\thread_hijack\x64\Release\thread_hijack.exe18132C:\Users\l00379637\source\repos\injected_dll\x64\Release\injected_dll.dllProcessID:18132Injected!劫持效果: 劫持代码如下:#include<iostream......
  • [Design-Data-Intensive-Application] Scalability
    1scaleupbettercpubettersever2scaleout Weibo/post/user/follow1) postselectpostfrompostsjoinusersonp.send_id=u.idjoinfollowsonf.id=u.idwherecur_id=f.followee.id(read) celebrity->wirtepoststoeveryfollow......