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

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

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

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

1.MD5加密

语法:MD5(‘密码’)

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

成功之后查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂的字符串,如下图:67e2fbf011dd60dfba5847327aa250d1.png

2. PASSWORD加密

语法:PASSWORD(‘密码’)

向student中插入一条数据,语句如下:580aa78030b5b595eb57ce48447d34fa.png

成功之后再次查看表中的内容,可以看到刚才插入的数据密码已经变成了一串我们看不懂得字符串,如下图:4e405e52156d09ad33c7d239662022ed.png

双向加密(双向加密就是明文可以变成密文存储在数据库中,同时密文也能通过相应的解密方法查看到明文)

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

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

成功之后输入查看student表的命令,可以看到用ENCODE加密形成的密文比用MD5和PASSWORD加密形成的密文更复杂且更短,如下图:59e018bc29ad2d19d4063db8e2f4d6f8.png

解密语法:DECODE(‘密码’, ‘任意字符’)注意:解密的任意字符必须和加密时所用的任意字符相同,查看明文的语句如下:264666e2c6d2f0263b0883dbe9264273.png

可以看到明文已经被正确地解密出来了,结果如下图:80492003f8a431851adaf31cfd90ee60.png

其实,mysql自带的加密函数不止这三种,掌握几种常用的就可以喽!

想了解更多内容可以在评论区留言。531b96b492aacfc3757e9fa84661530b.png

5ace16a1e3e894f2140ff1a4db7fb6b9.png

小九的博客

链接:https://blog.csdn.net/weixin_43433032/article/details/95962119

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐