【学习笔记】数据库级别的MD5加密

数据库级别的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`) 

image-20221004151605167

 

-- 给指定密码加密
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')

image-20221004152250677

posted @ 2022-10-04 15:23  GrowthRoad  阅读(96)  评论(0编辑  收藏  举报