MySQL居然能进行md5加密...

数据库级别的MD5加密

前言

该内容为拓展内容,主要是补充关于数据库MD5加密的内容

1、什么是MD5?

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

MD5不可逆!具体的值的MD5是一样的

MD5破解网站的原理,网站背后有个字典,输入MD5加密后的值,直到循环到该值,返回字典中对应的值。

2、SQLyog中的自动MD5加密

SQLyog使用后,关于密码栏会自动进行MD5加密 在这里插入图片描述

3、测试MD5加密

--测试MD5加密

create table 'testMD5'(
	`id` int(4) not null,
    `name` varchar(20) not null,
    `pwd` varchar(20) not null,
    primary key(`id`)
)engine=innodb default charset=utf8

--明文密码
insert into testMD5 values(1,'张三','123456'),(2,'李四','123456'),(3,'王五','123456')

--加密
update testMD5 set pwd=MD5(pwd) where id=1	--加密id为1的用户的秘密

update testMD5 set pwd=MD5(pwd) 	--加密全部密码

--插入的时候加密
insert into testMD5 values(4,'小吴',MD5('123456'))

--如何校验:将用户传递竟来的密码,进行MD5加密,然后对比加密后的值
select * from testMD5 where `name` = '小吴' and pwd=MD5('123456')

后话

关于数据库级别的MD5加密拓展内容就这么多,供小伙伴学习和参考。若有任何问题或错误,可以在下方评论区留言!