数据库级别的MD5加密(扩展)
数据库级别的MD5加密(扩展)
什么是MD5?
MD5主要是增强算法复杂度和不可逆性
MD5不可逆,具体的值的MD5是一样的
MD5破解网站的原理:网站背后有一个字典,将输入MD5加密后的值不断循环,循环到了就直到输入加密前的值
-- =======================测试MD5加密=========================
/*
错误创建
create table `testmd5`(
`id` int(4) not NULL
`name` varchar(20) not null
`pwd` varchar(50) not null
primary key(id)
)engine=innodb default charset=utf8
*/
-- 找不到这个bug在哪里,只好手动创建了~
-- 明文密码
INSERT INTO `testmd5` VALUES (1,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')
-- 加密
UPDATE `testmd5` SET pwd=MD5(pwd) WHERE id=1
UPDATE `testmd5` SET pwd=MD5(pwd) -- 加密所有的密码
-- 插入的时候加密
INSERT INTO `testmd5` VALUES(4,'xiaoming',MD5('123456'))
-- 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密后的值
SELECT * FROM `testmd5` WHERE `name` ='xiaoming' AND pwd=MD5('123456')