加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2020-12-11 23:17:28 所属栏目:MySql教程 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 3 实例演练 3.1 测试环境 使用Scott/[email?protected] --3.2.1 创建数据表 Drop Table Test_User; CREATE TABLE Test_User ( UserName VARCHAR2(30)

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

  3 实例演练  
  3.1 测试环境 
  使用Scott/[email?protected] 
  
  --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的目的,是为了调试方便,同时多提供一个知识点。 

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读