MySQL之数据库加密

MySQL之数据库加密

        数据库中存储着各种各样的数据,但当涉及密码相关的数据存储时,往往都需要对其进行加密,mysql数据库有自带的加密函数,下面将按照单向加密和双向加密给大家介绍一下mysql的加密函数。

    在介绍加密函数之前,首先要了解一下存储加密数据的数据类型------BLOB。BLOB是一个二进制的大型对象,能存储大小不同的数据,根据存储数据能力的大小通常将其分为四种:TinyBlob(最大为255)、Blob(最大65K)、MediumBlob(最大16M)、LongBlob(最大4G)。

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

先创建一个student表,当做测试样表,建表语句如下:

create table student (
    -> sid varchar(8) primary key,
    -> spass blob);

1.MD5加密

语法:MD5(‘密码’)

向student中插入一条数据,语句如下:

insert into student values ('03163180', MD5('12345'));

成功之后查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂的字符串,如下图:
在这里插入图片描述
2. PASSWORD加密

语法:PASSWORD(‘密码’)

向student中插入一条数据,语句如下:

insert into student values ('03163181', PASSWORD('000000'));

成功之后再次查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂得字符串,如下图:
在这里插入图片描述
双向加密(双向加密就是明文可以变成密文存储在数据库中,同时密文也能通过相应的解密方法查看到明文)

加密语法:ENCODE(‘密码’, ‘任意字符’)

向student中插入一条数据,语句如下:

insert into student values ('03163182', ENCODE('222222', 'abc'));

成功之后输入查看student表的命令,可以看到用ENCODE加密形成的密文比用MD5和PASSWORD加密形成的密文更复杂且更短,如下图:
在这里插入图片描述
解密语法:DECODE(‘密码’, ‘任意字符’)注意:解密的任意字符必须和加密时所用的任意字符相同

查看明文的语句如下:

select sid, DECODE(spass, 'abc') as spass from student where sid = '03163182';

可以看到明文已经被正确地解密出来了,结果如下图:
在这里插入图片描述
其实,mysql自带的加密函数不知这三种,这里就不一一说明了,掌握几种常用的就可以喽!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值