如何利用MySQL数据库自带加密函数进行加密

如何利用MySQL数据库自带加密函数进行加密,第1张

首先,先介绍下加密函数,PASSWORD(string)函数可以对字符串string进行加密,代码如下:

SELECT PASSWORD('you')

如下图所示

执行第一步的SQL语句,查询结果是一串字符串,并且PASSWORD(string)函数加密是不可逆转,

如下图所示:

另外一个加密函数MD5(string),主要针对普通的数据进行加密,代码如下:

SELECT MD5('hai')

如下图所示:

最后一个加密函数ENCODE(string,pass),可以使用字符串pass来加密字符串string。首先要创建一个数据库表t_pass_info,代码如下:

CREATE TABLE t_pass_info(

id int(10),

pass_info blob

)

如下图所示:

然后,向这个数据库表插入一条数据,代码如下:

INSERT INTO t_pass_info(id,pass_info) VALUES

(1,ENCODE('dong','bb'))

如下图所示:

6

查看插入数据库表t_pass_info记录,代码如下:

SELECT * FROM

t_pass_info

如下图所示:

7

MySQL自带还有一个解密函数DECODE(str,pass_str),可以使用字符串pass_str来为str解密,代码如下:

SELECT DECODE(ENCODE('dong','aa'),'aa')

如下图所示:

MySQL数据库的认证密码有两种方式,

MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密,

MySQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MySQL数据库里进行查询,前者是MySQL323加密,后者是MySQLSHA1方式加密。

(1)以MySQL323方式加密

select  old_password('111111')

(2)以MySQLSHA1方式加密

select password('111111')

MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说MySQLSHA1加密的密码的实际位数是40位。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8730243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存