700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用MD5编码实现数据库用户密码字段的加密

使用MD5编码实现数据库用户密码字段的加密

时间:2022-08-16 04:42:25

相关推荐

使用MD5编码实现数据库用户密码字段的加密

数据库|mysql教程

使用,MD5,编码,实现,数据库,用户,密码,字段,加密,前

数据库-mysql教程

电影直播网源码,vscode需要什么配置,ubuntu 18软件,tomcat内存是否泄漏,数据爬虫协议,php-fpm 配置优化,温州seo关键词排名,买原创网站源码,phpcms模板 红色lzw

1 前言 众所周知,MD5是目前应用最多的密码保护方法,该编码传说为不可逆加密编码<也就是说,永运无法倒算原码>。 使用MD5加密用户的操作密码,可以有效防止系统维护人员直接进入数据库时出现系统安全漏洞<直接使用SELECT语句查询,将用户密码字段只能看

h5商城免费源码下载,vscode启动重复编译,vm ubuntu 蓝屏,tomcat变量怎么获取,sqlite查询当天数据吗,网络爬虫犯罪进行规制的必要,php设计模式介绍,SEO发展方向在哪,水果网站asp,java小说网站模板lzw

电影系统源码cms,vscode语言模式设置,攒ubuntu主机,tomcat支持什么网页,sqlite删除一整张表,爬虫浏览器驱动爬虫,许愿墙 php源码,山东seo优化来电咨询,网站缩略图asp,手机模板网站下载lzw

1 前言

众所周知,MD5是目前应用最多的密码保护方法,该编码传说为不可逆加密编码<也就是说,永运无法倒算原码>。 使用MD5加密用户的操作密码,可以有效防止系统维护人员直接进入数据库时出现系统安全漏洞<直接使用SELECT语句查询,将用户密码字段只能看到乱码,或者”****”>

本文针对密码字段加密,作一实例,希望能给大家系统建设过程带来帮助。

2 技术点

2.1 DBMS_OBFUSCATION_TOOLKIT.MD5

DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>’abc’) a from Dual时,却有错误提示,看来该函数只能直接在程序包中调用,不能直接应用于SELECT语句。

2.2 Utl_Raw.Cast_To_Raw

DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW类型,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换<该知识点则之前论坛中NICK511贴子中获得>

.CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;}.CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;}.CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;}.CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;}.CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;}.CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;}

3 实例演练 3.1 测试环境使用Scott/Tiger@YourDBName --3.2.1 创建数据表 Drop Table Test_User; CREATE TABLE Test_User ( UserNameVARCHAR2(30)NOT NULL, PassWordVARCHAR2(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 ASFUNCTION FN_GetMD5 (P_StrINVARCHAR2)RETURN VARCHAR2 ASBEGINRETURN DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => Upper(P_Str));END;Function FN_CheckUser (P_UserNameINVARCHAR2 ,P_PasswordINVARCHAR2) Return NumberIsL_Password VarChar2(2000);BEGINSELECT Utl_Raw.Cast_To_Raw(Password)INTO L_PasswordFROM Test_UserWHERE 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;EXCEPTIONWHEN NO_DATA_FOUND THENReturn 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(b)); Commit; Select Test_MD5.FN_CheckUser(a,aa) From Dual; Select Test_MD5.FN_CheckUser(a,b) From Dual; 注:对MD5编码的比较,可以不需要经过Utl_Raw.Cast_To_Raw转换。此处使用Utl_Raw.Cast_To_Raw的目的,是为了调试方便,同时多提供一个知识点。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。