-- 测试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 -- 明文密码 INSERT INTO `testmd5`VALUES (1,'huang','123456'),(2,'guang','123456'),(3,'lin','123456') -- 加密 UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1 -- 只加密id=1 UPDATE testmd5 SET pwd=MD5(pwd) -- 插入的时候加密(一般) INSERT INTO testmd5 VALUES(5,'jiami',MD5('123456'))
同一个密码加密一次后是一样的,可重复加密,但第二次只和第二次一样,id=1是加密两次,id=2,3,5是第一次的,id=4是没加密的

-- 如何矫正:将用户传递进来的密码,进行MD5加密,然后比对加密后的值 SELECT * FROM testmd5 WHERE `name`='lin'AND pwd = MD5('123456')

网上的破解MD5加密后的软件就是这个原理,它有一个库区比对,但密码一但复杂就没用了,很拉胯的软件
本文来自博客园,作者:阿霖找BUG,转载请注明原文链接:https://www.cnblogs.com/lin-07/articles/16240901.html
浙公网安备 33010602011771号