使用MD5编码实现数据库用户密码字段的加密
发布时间:2020-05-23 08:07:09 所属栏目:MySql 来源:互联网
导读:使用MD5编码实现数据库用户密码字段的加密
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 3 实例演练
3.1 测试环境
使用Scott/[emailprotected]
--3.2.1 创建数据表
Drop Table Test_User;
CREATE TABLE Test_User (
UserName VARCHAR2(30) NOT NULL, PassWord VARCHAR2(2000) NOT NULL
)
/
--3.2.2 创建程序包
Create Or Replace Package Test_MD5 AS
Function FN_GetMD5(P_Str In VarChar2)
Return VarChar2;
Function FN_CheckUser
(P_UserName In VarChar2
,P_Password In VarChar2)
Return Number;
End;
/
CREATE OR REPLACE PACKAGE BODY Test_MD5 AS
FUNCTION FN_GetMD5 (P_Str IN VARCHAR2)
RETURN VARCHAR2 AS
BEGIN
RETURN DBMS_OBFUSCATION_TOOLKIT.MD5(
input_string => Upper(P_Str));
END;
Function FN_CheckUser
(P_UserName IN VARCHAR2
,P_Password IN VARCHAR2)
Return Number
Is
L_Password VarChar2(2000);
BEGIN
SELECT
Utl_Raw.Cast_To_Raw(Password)
INTO
L_Password
FROM
Test_User
WHERE
Upper(UserName) = UPPER(P_UserName);
If Utl_Raw.Cast_To_Raw(FN_GetMD5(P_Password))=L_Password Then
Return 1;
Else
Return 0;
End If;
EXCEPTION
WHEN NO_DATA_FOUND THEN
Return 0;
END;
End;
/
--3.3 测试
Delete Test_User;
Insert Into Test_User Values('A',Test_MD5.FN_GetMD5('aa'));
Insert Into Test_User Values('B',Test_MD5.FN_GetMD5('bb'));
Commit;
Select Test_MD5.FN_CheckUser('a','aa') From Dual;
Select Test_MD5.FN_CheckUser('a','bb') From Dual;
注:对MD5编码的比较,可以不需要经过Utl_Raw.Cast_To_Raw转换。此处使用Utl_Raw.Cast_To_Raw的目的,是为了调试方便,同时多提供一个知识点。
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
