3.数据库级别MD5加密(拓展项)
什么是MD5?
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
主要增加算法复杂度和不可逆性。
注意:MD5不可逆!!!简易的,具体的值,它的MD5值是一样的。
MD5破解网站的原理:在网站背后有一个字典,里面存有大量MD5加密后的值,用于对比查询MD5加密前的值。
1.0创建数据库。
use school;
create table `testmd5`(
`id` int(4) not null,
`name` varchar(17) not null,
`pwd` varchar(37) not null,
primary key(`id`)
)engine = innodb default charset = utf8;
2.0插入明文密码。
-- 明文密码
insert into testmd5 values
(1,'京','123456'),
(2,'东京','456789'),
(3,'西京','789123');
select * from testmd5;
3.0进行MD5加密
-- 对id=1的数据密码进行加密
update testmd5 set pwd = md5(pwd) where id = 1;
-- 全部加密。
update testmd5 set pwd = md5(pwd);
4.0 检验MD5加密。
-- 插入数据时加密
insert into testmd5 values (4,'吴南京','654321');
-- 如何校验: 将用户传递进来的密码,进行md5加密,然后比对加密后的值与数据库存储的是否相同。
SELECT * from testmd5 WHERE name = ' 吴南京' AND pwd=MD5('654321');
参考文献
《【狂神说Java】MySQL最新教程通俗易懂》
2020.05.15