首页/数据/SQL 速查/哈希函数:MD5 / SHA2 / CRC32
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

哈希函数:MD5 / SHA2 / CRC32

计算摘要用于校验与去重:MySQL 提供 MD5/SHA1/SHA2/CRC32;PostgreSQL 内置 md5 与 sha 系列,更多算法用 pgcrypto 的 digest()。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT MD5('abc');                     -- 900150983cd24fb0d6963f7d28e17f72
SELECT SHA2('abc', 256);               -- 十六进制摘要
SELECT CRC32('abc');                   -- 891568578

PostgreSQL

PostgreSQL
SELECT md5('abc');
SELECT encode(sha256(convert_to('abc', 'UTF8')), 'hex');  -- PG 11+ 内置
-- 更多算法:CREATE EXTENSION pgcrypto;
SELECT encode(digest('abc', 'sha256'), 'hex');
用途内容校验、幂等键、分片路由;不要用于密码存储
MySQL SHA2支持 224/256/384/512;MD5 返回 32 位十六进制字符串
PostgreSQLmd5 返回文本;sha256 返回 bytea,需 encode

易错点

  • MD5/SHA1 已不适合做安全用途(可被构造碰撞),密码存储应交给 bcrypt/Argon2 等应用层方案
  • PostgreSQL 的 sha256 返回 bytea,直接 SELECT 会显示 \x 开头的十六进制,比较时别忘了 encode 成同格式

数据来源与参考

  • MySQL 8.0 Reference Manual · Encryption and Compression Functions
  • PostgreSQL Documentation · pgcrypto
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌