关于MySQL数据库对敏感数据的加密的实现

提示:mysql数据库自带加密函数,单向加密和双向加密。

存储加密数据的数据类型—blob。blob是一个二进制的大型对象,可以存储大小不同的数据。根据存储数据能力大小分为tinyblob(255)、blob(65)、mediumblob(16*1024)、longblob(4G)。


提示:以下是本篇文章正文内容,下面案例可供参考

一、单向加密

实质上是对用户密码做了一个hash,本质上不算做加密,只是利用了hash的单向性,使文明到密文变得可行,但是无法从密文看到明文。
MD5加密:

//创建带有主键sid的表student1
mysql> create table student1(sid varchar(8) primary key,spass blob);
//使用md5(’密码')方法加密
mysql> insert into student1 values ('001',md5('12345'));
+-----+----------------------------------+
| sid | spass                            |
+-----+----------------------------------+
| 001 | 827ccb0eea8a706c4c34a16891f84e7b |
+-----+----------------------------------+

使用password加密
password(‘密码’)

//password + ('密码')
mysql> insert into student1 values ('003',password('000000'));
+-----+-------------------------------------------+
| sid | spass                                     |
+-----+-------------------------------------------+
| 001 | 827ccb0eea8a706c4c34a16891f84e7b          |
| 002 | 123                                       |
| 003 | *032197AE5731D4664921A6CCAC7CFCE6A0698693 |
+-----+-------------------------------------------+

二、双向加密

双向加密就是明文可以变成加密文件存储在数据库中,同时密文也可以通过相应的解密方法来查看到明文。
加密方法 —> encode( ‘密码’ , ‘任意字符’ )

mysql> insert into student1 values ('020',encode('admin','123'));
+-----+-------------------------------------------+
| sid | spass                                     |
+-----+-------------------------------------------+
| 008 |?$0?                                  |
| 020 | 傑                                      |
+-----+-------------------------------------------+

解密方法 —> decode( ‘密码’ , ‘任意字符’ )

mysql> select *,decode(spass,'123') as spass from student1 where sid = '020';
+-----+-------+-------+
| sid | spass | spass |
+-----+-------+-------+
| 020 | 傑  | amin  |
+-----+-------+-------+
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值