当前位置:首页 » 存储配置 » sql存储过程md5加密

sql存储过程md5加密

发布时间: 2022-10-15 11:52:38

① MD5如何对sql加密

对SQL加密?
SQL
SERVER
有自己的一套安全系统验证,它做的已经很好了
一般我们对SQL的加密都是对里面数据内容的加密,而常用的是密码的加密
现在常用的加密是MD5,把用户的密码加密后,保存到SQL数据库
还有一种是对分布式SQL的加密,就ASP.NET
2.0而言,可以在web.config文件里的SQL网络链接字符进行加密,以保证SQL
server的安全性
如有其他问题请提出,很高兴为你解答

② MD5如何对sql加密

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) =

这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算MD5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的 "抵赖",这就是所谓的数字签名应用。

MD5还广泛用于加密和解密技术上。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5 值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P (62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。

③ SQL用添加语句怎么不能用MD5加密

对啊,sql语言内部没有MD5函数!所以MD5函数不是内部函数!

④ 用MD5加密后,怎么找回密码

有时,在开发过程中,如果不小心更改掉了项目管理员帐号的密码而又忘了,存在数据库里的密码又是MD5加密后的,这时候怎么办?最为菜鸟的我,刚开始也很迷茫,不过向前辈们请教了请教,自己也查了查资料,特意整理记录一下,并分享给大家。 前提是你知道这个密码存在在哪个表的哪个字段,只不过是加密了,如果是oracle数据库的话,可以用DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('预置密码'))来得到一个MD5加密后的密码, 所以我们可以在UPDATE user set password=DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('预置密码')) where name='sys'来重新把不知道的密码用预置密码替换掉,这样我们就可用忘记密码的帐号重新登录了,如果是MySQL的话,好像有个内置MD5()函数,也可以起到这样的效果,具体的大家可以查查详细MySQL中MD5的用法,如果是SQL Server的话,好像也有对应的MD5家吗函数,记不太清了,应该是HashByte('加密方式', '待加密的值'),也可以通过这种方式找回的。 DBMS_OBFUSCATION_TOOLKIT.MD5是oracle提供的获得md5值的函数,可以直接使用DBMS_OBFUSCATION_TOOLKIT.MD5 ( input => utl_raw.cast_to_raw('预置密码'))a FROM DUAL来得到加密后的数据,否则得到的是raw类型的数据,需要用utl_raw.cast_to_raw转换成我们常用的md5格式,还有以上得到的md5值都是大写,如果数据库中存储的是小写,需要再用lower函数转换一下。 我们还可以使用存储过程来实现MD5加密: declare v_string varchar2(50); v_n number; begin v_string := utl_raw.cast_to_raw(sys.dbms_obfuscation_toolkit.md5(input_string => '123456')); v_n := length(v_string); dbms_output.put_line(v_string '--' v_n); end; 也可以写成函数后调用实现MD5加密: create or replace function fun_get_md5(i_username in varchar2, i_password in varchar2) return varchar2 is begin return utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => (i_usernamei_password))); end fun_get_md5; sql> select fun_get_md5('zhangwz','123456') from al; fun_get_md5('zhangwz','123456' -------------------------------------------------------------------------------- 下边是网上摘了一个存取用户密码信息的例子,以供大家参考: create table sys_user (id number,username varchar2(50),password varchar2(50)); 存取用户密码的过程应该写到存储过程中,以方便以后调用,这里是尽量省略来写。 用户注册时存入密码: sql> insert into sys_user values (1001,'zhangwz', fun_get_md5('zhangwz','123456')) ; sql> commit; 用户登录时取出密码: create or replace procere p_login(i_uname varchar2 ,i_passwd varchar2) is v_id number; v_error_text varchar2(200); begin select id into v_id from sys_user where username = i_uname and password = fun_get_md5(i_uname, i_passwd); exception when others then v_error_text := '用户名或密码不正确!' ',sqlcode:' sqlcode ' sqlerrm:' substr(sqlerrm ,1 ,200); end p_login;

⑤ 登陆界面连接sql server数据库用MD5类的Hash算法加密

说原理就行了。一般来说用户注册之后,把用户提交的密码,用MD5加密,数据库保存加密之后的密文,可以不保存原始的明文。下次用户登录,输入密码之后,用MD5加密,然后用加密之后的密文和数据库的密文匹配。如果一致的话就允许登录。验证的过程不需要验证明文,密文一致就行了。数据库被人盗了别人也很难破解原始的明文。

⑥ 如何设置sql md5 加密加密后怎么用原始密码进不了系统了

/**
*
*/
package com.yupont.app.user;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* ClassName: MD5 <br>
* Function : 提供MD5加密方法 <br>
* @author L.H.W <br>
* Version : 1.0 <br>
* Since : 2005-10-13 <br>
*
*/
public class MD5 {
/**
*
* @param string to encode
* @return Encoded String
*/
public static String crypt(String str)
{
if (str == null || str.length() == 0) {
throw new IllegalArgumentException("String to encript cannot be null or zero length");
}

StringBuffer hexString = new StringBuffer();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] hash = md.digest();

for (int i = 0; i < hash.length; i++) {
if ((0xff & hash[i]) < 0x10) {
hexString.append("0" + Integer.toHexString((0xFF & hash[i])));
}
else {
hexString.append(Integer.toHexString(0xFF & hash[i]));
}
}
}
catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}

return hexString.toString();
}

}
用这个类对你的用户登录密码加密,然后生成的字符串存到数据库中,再下次登录时候用这个类处理比较数据库中原有注册时候的字符串,相同就成功,反之登录失败。

⑦ 如何在sql的存储过程中使用md5加密

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)

⑧ 关于在SQl里对字段进行MD5加密存储的

md5加密有相关的加密函数,但不是在数据库中操作的,数据库只是来保存加密的结果字符串。

加密的话你找相关语言的加密函数就行

⑨ 怎样在数据库里应用MD5加密,初学者不太懂

Oracle数据库里面可以使用PLSQL编写MD5加密的存储过程或者函数,或者使用JAVA存储过程。

热点内容
第六章编译原理答案 发布:2025-07-04 17:37:55 浏览:38
php内存优化 发布:2025-07-04 17:25:54 浏览:662
威纶触摸屏如何设置时间限制密码 发布:2025-07-04 17:25:50 浏览:417
python列表的遍历 发布:2025-07-04 17:24:20 浏览:22
编译基本块 发布:2025-07-04 17:23:06 浏览:748
scl语言编程 发布:2025-07-04 17:23:05 浏览:991
oracle用户连接数据库连接 发布:2025-07-04 17:20:20 浏览:938
我的世界纯生存服务器推荐死亡不掉落 发布:2025-07-04 17:06:14 浏览:346
方舟编译器可以用于p20吗 发布:2025-07-04 17:00:17 浏览:785
短片解压 发布:2025-07-04 16:50:08 浏览:737