数据库如何实现字段加密

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库如何实现字段加密相关的知识,希望对你有一定的参考价值。

我用的是SQL-2005版本,用sa登陆,假设我有一个表user,有列id,username,password,现要加密字段password,如何编写T-SQL语句实现,加密之后怎么解密出来,我要源码,不要理论!能实现就采纳
怎么没人知道呢?能实现的我再加分啊

好像没这东西
你在编程语言中实现把
这种情况我都是用MD5加密
虽然你不想听理论。。。我也懒得写代码。。。

1、把用户的密码用MD5改变成32个字符
2、将这字符串写到数据库里
3、判断密码是否正确的时候,把用户输入的密码在用MD5改变成32个字符、判断这字符串和数据库中字符串是否相同

下面是JAVA的MD5用法

import java.security.MessageDigest;

public class MD5
private final static String[] hexDigits = "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" ;

//将字节数组转换为十六进制字符串
private static String byteArrayToHexString(byte[] b)
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++)
resultSb.append(byteToHexString(b[i]));

return resultSb.toString();


//将字节转换为十六进制字符
private static String byteToHexString(byte b)
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];


public static String MD5Encode(String origin)
String resultString = null;

try
resultString = new String(origin);
//MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToHexString(md.digest(resultString
.getBytes("GBK")));
catch (Exception ex)


return resultString;


public static void main(String[] args)

System.out.println(MD5.MD5Encode("admin"));
System.out.println(MD5.MD5Encode("密码内容"));


参考技术A 数据库没有这种功能,只能通过代码存储的时候进行md5加密 参考技术B 插入加密数据:
1、INSERT INTO userdata(username,pasword,encryptedpassword)
2、VALUES ('smith','htims',AES_ENCRYPT('htims','key'))
上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。
AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它。

从表中查询加密数据
1、SELECT username,pasword,AES_DECRYPT(encryptedpassword,'key')
2、FROM userdata.
参考技术C 比如注册,用户注册时候,对密码进行md5,保存到数据库,在用户登录时,输入的密码进行md5和数据库中存储的值进行比较即可。 参考技术D oracle 数据库有 DBMS_CRYPTO
http://blog.csdn.net/rznice/article/details/7402850

如何使用Spring框架加密文档中的所有MongoDB字段

我使用Spring框架和mongoDB,所以问题是如何加密我的所有文档并加密存储它们。目前没有加密,所有文件都以原始形式存储。那么如何实现加密(例如AES)

用户密码在MD5中加密,但我想加密该用户获得的消息

P.Sazxswpoi

This plugin doesn't work with Spring 2.0+

谢谢

答案

如果你有MongoDB企业版。它支持加密。 Itz加密解决方案,可在飞行中和静止时保护您的数据。如果您没有企业版,则应进行磁盘级加密。否则,您应该加密应用程序端的数据并将其发送到MongoDB。

以上是关于数据库如何实现字段加密的主要内容,如果未能解决你的问题,请参考以下文章

PayPal:如何清理动态创建的加密网站付款按钮的字段值?

如何使用Spring框架加密文档中的所有MongoDB字段

如何给MySQL数据库的表中的密码字段设置长度限制?

如何使用自定义字段制作 PayPal 加密的“立即购买”按钮?

怎么实现对SQL Server数据库的字段进行加密和解密

求 Oracle MD5加密,及java程序端的处理步骤