当前位置:首页 » 编程语言 » sql存储过程md5加密
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql存储过程md5加密

发布时间: 2022-04-21 16:22:44

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

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

Ⅱ 关于在SQl里对字段进行MD5加密存储的

md5加密有相关的加密函数,但不是在数据库中操作的,数据库只是来保存加密的结果字符串。

加密的话你找相关语言的加密函数就行

Ⅲ SQL用添加语句怎么不能用MD5加密

对啊,sql语言内部没有MD5函数!所以MD5函数不是内部函数!

Ⅳ sql MD5加密求助,怎么弄。把密码转成MD5然后插入到SQL表中。

select a.fromstepid,
case a.isauto when 1 thgen b.tostepid else a.tostepid end as tostepid
from step a
left join step b on a.tostepid=b.fromstepid
where a.fromstepid not in
(select tostepid from step where isauto=1)
SQL Server2005,测试通过

Ⅳ 用存储过程可以实现MD5加密吗

没有人会用存储过程加密的。要加密的是传输过程中加啊,你都到存储过程了还加密,没意义了啊

Ⅵ 用MD5加密后,怎么找回密码

有时,在开发过程中,如果不小心更改掉了项目管理员帐号的密码而又忘了,存在数据库里的密码又是MD5加密后的,这时候怎么办?最为菜鸟的我,刚开始也很迷茫,不过向前辈们请教了请教,自己也查了查资料,特意整理记录一下,并分享给大家。
前提是你知道这个密码存在在哪个表的哪个字段,只不过是加密了,如果是oracle数据库的话,可以用DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('预置密码'))来得到一个MD5加密后的密码,
所以我们可以在UPDATE
user
set
password=DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('预置密码'))
where
name='sys'来重新把不知道的密码用预置密码替换掉,这样我们就可用忘记密码的帐号重新登录了,如果是MySQL的话,好像有个内置MD5()函数,也可以起到这样的效果,具体的大家可以查查详细MySQL中MD5的用法,如果是SQL
Server的话,好像也有对应的MD5家吗函数,记不太清了,应该是HashByte('加密方式',
'待加密的值'),也可以通过这种方式找回的。
DBMS_OBFUSCATION_TOOLKIT.MD5是oracle提供的获得md5值的函数,可以直接使用DBMS_OBFUSCATION_TOOLKIT.MD5
(
input
=>
utl_raw.cast_to_raw('预置密码'))a
FROM
DUAL来得到加密后的数据,否则得到的是raw类型的数据,需要用utl_raw.cast_to_raw转换成我们常用的md5格式,还有以上得到的md5值都是大写,如果数据库中存储的是小写,需要再用lower函数转换一下。
我们还可以使用存储过程来实现MD5加密:
declare
v_string
varchar2(50);
v_n
number;
begin
v_string
:=
utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string
=>
'123456'));
v_n
:=
length(v_string);
dbms_output.put_line(v_string
'--'
v_n);
end;
也可以写成函数后调用实现MD5加密:
create
or
replace
function
fun_get_md5(i_username
in
varchar2,
i_password
in
varchar2)
return
varchar2
is
begin
return
utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string
=>
(i_usernamei_password)));
end
fun_get_md5;
sql>
select
fun_get_md5('zhangwz','123456')
from
al;
fun_get_md5('zhangwz','123456'
--------------------------------------------------------------------------------

下边是网上摘了一个存取用户密码信息的例子,以供大家参考:
create
table
sys_user
(id
number,username
varchar2(50),password
varchar2(50));
存取用户密码的过程应该写到存储过程中,以方便以后调用,这里是尽量省略来写。
用户注册时存入密码:
sql>
insert
into
sys_user
values
(1001,'zhangwz',
fun_get_md5('zhangwz','123456'))
;
sql>
commit;
用户登录时取出密码:
create
or
replace
procere
p_login(i_uname
varchar2
,i_passwd
varchar2)
is
v_id
number;
v_error_text
varchar2(200);
begin
select
id
into
v_id
from
sys_user
where
username
=
i_uname
and
password
=
fun_get_md5(i_uname,
i_passwd);
exception
when
others
then
v_error_text
:=
'用户名或密码不正确!'
',sqlcode:'
sqlcode
'
sqlerrm:'
substr(sqlerrm
,1
,200);
end
p_login;

Ⅶ 怎么在sql语句中对数据进行md5加密

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','你要加密的内容')),3,32)

Ⅷ 登陆界面连接sql server数据库用MD5类的Hash算法加密

说原理就行了。一般来说用户注册之后,把用户提交的密码,用MD5加密,数据库保存加密之后的密文,可以不保存原始的明文。下次用户登录,输入密码之后,用MD5加密,然后用加密之后的密文和数据库的密文匹配。如果一致的话就允许登录。验证的过程不需要验证明文,密文一致就行了。数据库被人盗了别人也很难破解原始的明文。