当前位置:首页 » 密码管理 » oracle数据库md5加密

oracle数据库md5加密

发布时间: 2022-08-22 11:09:01

‘壹’ oracle存储过程中调用MD5加密的方法

CREATE OR REPLACE FUNCTION fn_md5 (input_string IN VARCHAR2)
RETURN VARCHAR2
IS
raw_input RAW (128)
:= UTL_RAW.cast_to_raw (input_string);
decrypted_raw RAW (2048);
error_in_input_buffer_length EXCEPTION;
BEGIN
DBMS_OBFUSCATION_TOOLKIT.md5 (input => raw_input,
checksum => decrypted_raw
);
RETURN LOWER (RAWTOHEX (decrypted_raw));
END;

http://www.matrix.org.cn/resource/article/2005-12-03/Oracle_44020.html

看看这个吧,学习学习

‘贰’ 如何利用Oracle自带的MD5对数据进行加密

1、DBMS_OBFUSCATION_TOOLKIT.MD5是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;
select md5('123456') from al;
MD5('123456')


2、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加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
3、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;
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s;

‘叁’ Oracle数据库中MD5解密方法是什么

MD5解密方法
我在存储数据库的时候,通过md5加密方法将字段进行加密,当我在读取该字段时如何正确的读取原来的值啊
------解决方案--------------------
没办法,MD5是不可逆的。
你需要使用可逆加密算法
------解决方案--------------------
插入表中的时候md5加密
比如:
$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) ";
$qid=mysql_query($sql);
读取的时候
$pswd=empty($_POST[ 'pswd '])? ' ':md5($_POST[ 'pswd ']);
------解决方案--------------------
如果业务要求可还原,那么不要采用MD5,请使用可逆加密算法,如DES加密。
MD5为不可逆散列算法,可用于存储用户密码,存储后不需要永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。
linux/unix操作系统一般采用MD5进行用户密码加密。
------解决方案--------------------
MD5目前所谓的破解只是采用碰撞法找到了对等因子。
比如:string1的MD5码为MD1,而现在我们做到的只是又找到了一个string2,它的MD5码也是MD1。
结果就是:用户登陆某采用MD5加密的系统时,本来密码是12345,现在可能用abcde也能登陆。
想想可能还原吗?如果可以还原,那天大的信息也能用32位长的字符串表示了,这不成了超级压缩算法了吗,整个宇宙的信息都可以用32位长表示了。不可逆的!

‘肆’ 如何把oracle数据库中的密码这一项的字段都改成MD5加密的

UPDATE table SET 密码=MD5(密码);
不知道oracle中有没有,mysql中是存在的。

‘伍’ md5加密完怎么插入oracle数据库

如果不需要恢复明码,可以用md5 如果需要恢复明码,可以用des之类的。

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

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

‘柒’ 求 Oracle MD5加密,及java程序端的处理步骤

今天刚做了个加密的程序:分享一下:
你可以这样做:你在新建的密码的时候 去调用下面的方法 把密码带进去加密 此时向数据库中插入这个加密的字段。 登录的时候 输入密码 当然这个密码要转为加密的密文,这个密文去与你一开始新增加的密文进行匹配 如果匹配上啦 那么就可以登录进去啦。
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] b = md.digest(这里是你加密的密码.getBytes("utf8"));

StringBuilder ret=new StringBuilder(b.length<<1);
for(int i=0;i<b.length;i++){
ret.append(Character.forDigit((b[i]>>4)&0xf,16));
ret.append(Character.forDigit(b[i]&0xf,16));
}
ret.toString();

System.out.println(ret.toString());
String result = "";
for (int i = 0; i < b.length; i++) {
String tmp = Integer.toHexString(b[i] & 0xFF);
if (tmp.length() == 1) {
result += "0" + tmp;
} else {
result += tmp;
}
}
System.out.println(new String(result));
}

‘捌’ 在Oracle数据库中怎么实现明白储存,如何用MD5或者其他方法来实现,求详细解答,急急急.....

//MD5加密函数
selectMD5('密码');
//PASSWORD加密函数
selectPASSWORD('密码');
--以上语句,可以直接执行查看效果

‘玖’ 怎样在数据库里应用MD5加密,初学者不太懂

Oracle数据库里面可以使用PLSQL编写MD5加密的存储过程或者函数,或者使用JAVA存储过程。

热点内容
数据库二级映射 发布:2025-05-15 15:14:09 浏览:475
3d文件加密 发布:2025-05-15 15:05:17 浏览:361
jquery拖拽上传图片 发布:2025-05-15 14:53:36 浏览:129
我的世界电脑服务器需要正版吗 发布:2025-05-15 14:38:53 浏览:694
大华录像机哪里有安卓设备 发布:2025-05-15 14:25:06 浏览:808
录制脚本方案 发布:2025-05-15 14:25:04 浏览:165
奇石脚本业 发布:2025-05-15 14:23:44 浏览:680
android中的socket 发布:2025-05-15 14:22:15 浏览:409
apph5源码 发布:2025-05-15 14:19:51 浏览:667
2d游戏按键精灵脚本教程 发布:2025-05-15 14:10:15 浏览:279