数据库级别的MD5 加密
什么是MD5
MD5信息摘要算法一种被广泛使用的密码散列函数,可以产生出一个128位16字节的散列值,用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
主要增强算法负责都和不可逆性。
md5 不可逆 ,具体值和md5 是一样的
md5 破解网站原理, 背后有一个字典,md5值加密后的值,返回加密前的值
-- ============ 测试md5 加密 ===================
CREATE TABLE `user`(
`id` INT NOT NULL,
`name` VARCHAR(20) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `user` VALUES(1,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')
SELECT * FROM `user`
UPDATE `user` SET pwd=MD5(pwd) WHERE id=1 -- 加密id=1的密码
-- 插入时 加密密码
INSERT INTO `user` VALUES(4,'zhangsan',MD5(123456))
-- 如何校验:将用户传递进来的密码 ,进行md5 加密 然后对比加密的值
SELECT * FROM `user` WHERE `name`='zhangsan' AND pwd=MD5('123456')