本文实例讲述了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数据行拆分多行方法示例,包括了Oracle数据行拆分多行方法示例的使用技巧和注意事项,需要的朋友参考一下 工作和学习中常常会遇到一行要分割成多行数据的情况,在此整理一下做下对比。 单行拆分 如果表数据只有一行,则可以直接在原表上直接使用connect by+正则的方法,比如: 输出结果: 多行拆分 如果数据表存在多行数据需要拆分,也可以在原表上使用connect+正则的方
问题内容: 我被要求 对db中的各个db字段 进行 加密 。 问题是这些字段在读取后需要解密。 我正在使用 Django 和 SQL Server 2005 。 有什么好主意吗? 问题答案: 是的。告诉任何告诉你真实的人。没有道理/没有道理。如果是关于存储的值的,那么企业版2008可以存储加密的DB文件。 否则,如果您真的需要(具有所有缺点),只需对其进行加密并将其存储为字节字段。
本文向大家介绍修改ORACLE数据库密码有效期的方法,包括了修改ORACLE数据库密码有效期的方法的使用技巧和注意事项,需要的朋友参考一下 修改方法 在程序运行过程中,常常会因为数据库密码过期而使程序无法正常访问。为解决这一问题,可采用如下方法: 1.查看用户的proifle是哪个,一般是default SELECT username,PROFILE FROM dba_users; 2.查看指定概
本文向大家介绍Oracle数据加载和卸载的实现方法,包括了Oracle数据加载和卸载的实现方法的使用技巧和注意事项,需要的朋友参考一下 在日常工作中;经常会遇到这样的需求: Oracle 数据表跟文本或者文件格式进行交互;即将指定文件内容导入对应的 Oracle 数据表中;或者从 Oracle 数据表导出。 其他数据库中的表跟Oracle数据库进行交互。 若是少量数据;可选择的解决方案有很多。
bcrypt 数据加密 文档:https://www.npmjs.com/package/bcryptjs 安装:cnpm i -S bcryptjs [ ] 使用: 封装helper函数 app / extend / helper.js // 引入加密插件 const bcrypt = require('bcryptjs') const jwt = require('jsonwebtoken')
EncryptAlgorithm SPI 名称 详细说明 EncryptAlgorithm 数据加密算法 已知实现类 详细说明 MD5EncryptAlgorithm 基于 MD5 的数据加密算法 AESEncryptAlgorithm 基于 AES 的数据加密算法 RC4EncryptAlgorithm 基于 RC4 的数据加密算法 QueryAssistedEncryptAlgorithm S