【学习笔记】数据库级别的MD5加密
什么是MD5?
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
MD5的特点:主要增强算法复杂度和不可逆性
所以网上的所谓MD5破解网站,实际上是将一些常见的密码,如:123456等进行MD5加密,放到它的字典中,用户去破解时,他在他的字典中查找。一旦密码较为复杂,他就无法破解
如何使用MD5加密?
-- 创建表
CREATE TABLE `testmd5`(
`id` INT(10) 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,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')
-- 将所有密码加密
UPDATE `testmd5` SET `pwd` = MD5(`pwd`)
-- 给指定密码加密
UPDATE `testmd5` SET `pwd` = MD5(`pwd`) WHERE `id` = 1
-- 插入的时候加密
INSERT INTO `testmd5` VALUES(4,'zhaoliu',MD5('123456'))
应该如何校验用户输入的密码呢?
将用户输入的密码进行MD5加密,然后对比加密后的值
SELECT * FROM `testmd5` WHERE `name` = 'zhaoliu' AND `pwd` = MD5('123456')