MD5加密

MySQL 数据库学习笔记(续)

五、MySQL 函数

5.3 数据库级别的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;


-- 明文密码
INSERT INTO testmd5 VALUES (1,'张三','123456'),(2,'李四','123456'),(3,'王五','123456');


-- 加密(单条)
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id = 1;

-- 加密全部的密码
UPDATE testmd5 SET pwd=MD5(pwd);

-- 插入的时候直接加密
INSERT INTO testmd5 VALUES (4,'小明',MD5('123456'));

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

总结

  1. MD5 作用:对密码等敏感信息加密,不存储明文
  2. 使用方式
    • 插入数据时直接加密:MD5('明文')
    • 更新已有数据加密:UPDATE 表 SET 字段=MD5(字段)
  3. 校验逻辑:用户传入密码 → 程序加密为 MD5 → 和数据库里的密文对比
  4. 特点:相同明文 → 相同密文;不可逆,无法直接解密

我可以继续按这个格式帮你整理事务(Transaction)、索引、权限管理等后续笔记,需要继续吗?

posted @ 2026-04-14 12:01  果子同志  阅读(3)  评论(0)    收藏  举报