• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle数据加密方法分析

    本文实例讲述了Oracle数据加密方法。分享给大家供大家参考,具体如下:

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

    一、前言

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

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

    二、技术点

    1. DBMS_OBFUSCATION_TOOLKIT.MD5

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

    2. Utl_Raw.Cast_To_Raw

    DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW类型,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换

    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 varchar(1000);
      begin
        select password into l_password from test_user
        where upper(username)=upper(p_username) and password=Test_MD5.FN_GetMD5(p_password);
        if l_password is null Then
          return 0;
        else
          return 1;
        end if;
        exception
        when NO_DATA_FOUND then
          return 3;
      end;
    end;
    
    

    测试:

    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'));
    select * from test_user;
    Select Test_MD5.FN_CheckUser('a','aa') From Dual;
    Select Test_MD5.FN_CheckUser('a','bb') From Dual;
    select * from Test_User t where t.password=test_md5.fn_getmd5('aa')
    
    

    更多关于Oracle相关内容感兴趣的读者可查看本站专题:《Oracle常用函数汇总》、《Oracle日期与时间操作技巧总结》及《php+Oracle数据库程序设计技巧总结》

    希望本文所述对大家Oracle数据库程序设计有所帮助。

    您可能感兴趣的文章:
    • Oracle中的MD5加密详解
    • Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享
    • Oracle定义DES加密解密及MD5加密函数示例
    • Oracle 存储过程加密方法
    • oracle 存储过程加密的方法
    • oracle下加密存储过程的方法
    上一篇:Oracle数据库如何创建第一张表
    下一篇:oracle数据库定时任务dbms_job的用法详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle数据加密方法分析 Oracle,数据,加密,方法,分析,