数据库中存储着各种各样的数据,但当涉及密码相关的数据存储时,往往都需要对其进行加密,mysql数据库有自带的加密函数,下面将按照单向加密和双向加密给大家介绍一下mysql的加密函数。
在介绍加密函数之前,首先要了解一下存储加密数据的数据类型------BLOB。BLOB是一个二进制的大型对象,能存储大小不同的数据,根据存储数据能力的大小通常将其分为四种:TinyBlob(最大为255)、Blob(最大65K)、MediumBlob(最大16M)、LongBlob(最大4G)。
单向加密(实质上是对用户密码做了一个HASH,本质上不算做加密,只是利用了HASH的单向性,使明文到密文变得可行,但从密文无法查看到明文)
先创建一个student表,当做测试样表,建表语句如下:
1.MD5加密
语法:MD5(‘密码’)
向student中插入一条数据,语句如下:
成功之后查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂的字符串,如下图:
2. PASSWORD加密
语法:PASSWORD(‘密码’)
向student中插入一条数据,语句如下:
成功之后再次查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂得字符串,如下图:
双向加密(双向加密就是明文可以变成密文存储在数据库中,同时密文也能通过相应的解密方法查看到明文)
加密语法:ENCODE(‘密码’, ‘任意字符’)
向student中插入一条数据,语句如下:
成功之后输入查看student表的命令,可以看到用ENCODE加密形成的密文比用MD5和PASSWORD加密形成的密文更复杂且更短,如下图:
解密语法:DECODE(‘密码’, ‘任意字符’)注意:解密的任意字符必须和加密时所用的任意字符相同,查看明文的语句如下:
可以看到明文已经被正确地解密出来了,结果如下图:
其实,mysql自带的加密函数不止这三种,掌握几种常用的就可以喽!
想了解更多内容可以在评论区留言。
小九的博客
链接:https://blog.csdn.net/weixin_43433032/article/details/95962119