mysql加密

如果数据库表User中有一列为passwd,存放的是md5加密的数据,如何更新新的数据。

update user set passwd=md5("123321") where uName="lihua";

插入新的数据:

insert into user(uName,passwd) values("xiaoqiang",md5("123321")) ;

这样存放在数据中的密码信息就是保密存放的,但是通过md5加密后的数据是不能逆向使用的,也就是说如果想严重用户的密码信息,则需要通过数据查询匹配来实现。

比如需要进行用户身份认证,则需要执行下面查询语句:

select * from user where uName="lihua" and passwd=md5("123321");

注意加密的变量值要大一些


数据加密、解密在安全领域非常重要。对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大。

有多种前端加密算法可用于数据加密、解密,下面我向您推荐一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRYPT())。

在表中插入加密数据

 
 
  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 

上面的查询语句使用了AES_DECRYPT()函数。下面是运行结果:

在上面的截图中,我们可以看到“pasword”和“decryptedpassword”字段的值是相同的,也就是说,你解密了用户密码。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值