首页/新闻资讯/正文详情

哈希函数入门:5分钟搞懂 MD5/SHA 系列算法

发布时间:2026/9/27 2:07:47 来源:云帆数科 栏目:资讯中心
哈希函数入门:5分钟搞懂 MD5/SHA 系列算法
面试常被问MD5 和 SHA256 有什么区别很多人只知道一个 32 位一个 64 位但说不清什么是哈希函数、为什么叫单向、什么是雪崩效应。本文从三个核心性质到五种常见算法把哈希的基础彻底讲透。什么是哈希函数哈希函数Hash Function是一种将任意长度的输入数据转换为固定长度输出的函数。这个输出就叫哈希值、摘要或散列值。输入任意长度 → 哈希函数 → 输出固定长度核心特征输入可以是任何内容——一个字符、一段文字、一张图片、一个 10GB 的文件——输出长度始终不变。三个核心性质1. 单向性One-way只能从输入算输出不能从输出反推输入。// 计算 SHA256 很容易consthashsha256(Hello World)// d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945// 但你不可能从这个 64 位字符串反推出 Hello World// 唯一方法是暴力枚举所有可能的输入2. 确定性Deterministic相同的输入永远产生相同的输出。importhashlib# 同一段数据无论算多少次、用什么语言算结果都一样print(hashlib.sha256(bHello).hexdigest())# 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969# 再算一遍结果完全一致print(hashlib.sha256(bHello).hexdigest())# 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969这个性质是哈希能用于数据校验的基础——如果两段数据的哈希值相同就可以认为数据相同。3. 雪崩效应Avalanche Effect输入的微小变化会导致输出的巨大变化。哪怕只改一个字符哈希值也会完全不同。// 原始文本sha256(Hello World)// d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945// 把小写 w 改成大写 Wsha256(Hello World)// d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945// 再加一个空格sha256(Hello World )// 0a4d55a8d778e5022fab701977c5d840bbc486d0e5296950b1acb66dcc40f2b9第一个字符就变了两个哈希值看起来完全不相关。雪崩效应确保攻击者无法通过观察哈希值的变化来推断输入的变化。五种常见哈希算法算法输出长度位十六进制字符数发布时间设计者MD5128 位32 字符1992Ron RivestSHA-1160 位40 字符1995NSASHA-256256 位64 字符2001NSASHA-384384 位96 字符2001NSASHA-512512 位128 字符2001NSASHA 家族的关系SHA-1第一代安全哈希算法160 位输出SHA-2第二代包含 SHA-224、SHA-256、SHA-384、SHA-512 四个变体数字表示输出位数SHA-3第三代Keccak2015 年发布与 SHA-2 设计完全不同用浏览器 Web Crypto 计算哈希现代浏览器内置了 Web Crypto API可以直接计算 SHA 系列哈希asyncfunctioncomputeSHA256(text){constencodernewTextEncoder()constdataencoder.encode(text)constbufferawaitcrypto.subtle.digest(SHA-256,data)constbytesnewUint8Array(buffer)// 转十六进制字符串lethexfor(leti0;ibytes.length;i){consthbytes[i].toString(16)hexh.length1?0h:h}returnhex}computeSHA256(Hello World).then(console.log)// d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945crypto.subtle.digest()是浏览器原生 API性能非常高支持 SHA-1、SHA-256、SHA-384、SHA-512 四种算法。注意Web Crypto API 只在安全上下文HTTPS 或 localhost中可用。MD5 不在 Web Crypto 支持范围内需要第三方库实现。Node.js 对照constcryptorequire(crypto)functioncomputeHash(text,algorithm){returncrypto.createHash(algorithm).update(text,utf-8).digest(hex)}console.log(computeHash(Hello World,md5))// b10a8db164e0754105e766fea50c4316console.log(computeHash(Hello World,sha1))// 0a4d55a8d778e5022fab701977c5d840bbc486d0console.log(computeHash(Hello World,sha256))// d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945console.log(computeHash(Hello World,sha384))// 99514329186b2f6ae4a1329e7ee6c610a729636335174...console.log(computeHash(Hello World,sha512))// 2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a...Node.js 的crypto.createHash支持更全的算法包括 MD5。Python 对照importhashlib textHello Worldprint(hashlib.md5(text.encode(utf-8)).hexdigest())# b10a8db164e0754105e766fea50c4316print(hashlib.sha1(text.encode(utf-8)).hexdigest())# 0a4d55a8d778e5022fab701977c5d840bbc486d0print(hashlib.sha256(text.encode(utf-8)).hexdigest())# d2a84f4b8b650937ec8f73cd8be2c74add5a911ba64df27498ed22a0d624c945三种语言对同一段文本计算出的 SHA256 完全一致——这就是确定性的体现。哈希的常见用途用途说明常用算法密码存储存哈希值不存明文验证时对比哈希bcrypt、Argon2不是通用哈希文件校验下载后对比哈希验证文件完整SHA256、MD5数据去重相同内容哈希相同只存一份SHA1、MD5数字签名对哈希值签名而非对原文签名SHA256 RSA/ECDSA区块链区块哈希串联保证不可篡改SHA256比特币Git每个对象用 SHA1 标识内容SHA1在线练习理解哈希函数最快的方式是拿真实数据算一遍。可以在 盘子工具站哈希计算工具 上做这种练习——输入Hello World工具同时显示 MD5、SHA1、SHA256、SHA384、SHA512 五种算法的结果。你可以做三个实验定长验证输入不同长度的文本一个字、一句话、一段文章观察每种算法的输出长度始终不变32/40/64/96/128 字符雪崩效应输入Hello和Hello多加一个空格对比 SHA256 结果——完全不同一致性验证复制工具计算出的 SHA256 值用 Python 或 Node.js 算一遍结果完全相同工具还支持上传文件计算哈希——拖拽一个本地文件上去即时获得五种算法的哈希值。所有计算在浏览器本地完成不上传服务器适合处理敏感数据。

相关推荐

wordpress如何制作二维码怎么选
wordpress如何制作二维码怎么选

搞定WordPress二维码:从域名服务器到SEO选型的实操指南 很多老板做站初期最头疼的不是设计,而是 域名服务器搞不懂 。买了个域名,租了台服务器,结果网站加载慢得像蜗牛,二维码扫出来全是乱码,或者根本扫不出来。这时候你才意识到,… · 2026/9/27 2:07:47

SAM2 视觉分割模型 ONNX INT8/FP8 量化实战:NVIDIA Model Optimizer Windows PTQ 全流程指南
SAM2 视觉分割模型 ONNX INT8/FP8 量化实战:NVIDIA Model Optimizer Windows PTQ 全流程指南

人工智能大模型模型优化模型量化模型压缩 【免费下载链接】Model-Optimizer A unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning mode… · 2026/9/27 2:07:47

STM32开发资源与实战参考:从环境搭建到外设调试的完整指南
STM32开发资源与实战参考:从环境搭建到外设调试的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:07:41

光子嫩肤为什么同城报价差很多?用“成本三栏”看最终账单
光子嫩肤为什么同城报价差很多?用“成本三栏”看最终账单

从成本结构而不是单次低价出发,记录固定项、可选项和不确定项。同城报价差异,很多时候不是“谁更贵”,而是服务链条被拆成了不同的收费结构。用固定、可选、不确定三栏把账单写出来,才有机会看懂最终成本。先看信息结构&#xff0… · 2026/9/27 2:54:17

搞不定域名服务器?一文搞懂网站推广方法主要有哪几种
搞不定域名服务器?一文搞懂网站推广方法主要有哪几种

搞不定域名服务器?一文搞懂网站推广方法主要有哪几种 域名解析报错,服务器连接超时,SSL证书配置失败……面对这一堆技术名词,你是不是觉得脑子像浆糊一样?很多独立站长在起步阶段就卡在这一步,明明代码写好了,界面也调得挺好看,结果一上线,要么打… · 2026/9/27 2:53:59

3步看懂seo公司被百度稿了能和解吗速查手册
3步看懂seo公司被百度稿了能和解吗速查手册

3步看懂seo公司被百度稿了能和解吗速查手册 自己不会代码想做网站,结果找了家SEO公司,钱花了,排名没了,甚至网站直接被百度“搞”了?别慌,先翻出这份 速查手册… · 2026/9/27 2:53:53

3年避坑经验:一文搞懂网站设计的总结与实操
3年避坑经验:一文搞懂网站设计的总结与实操

3年避坑经验:一文搞懂网站设计的总结与实操 找建站公司怕被坑高价?别急,这篇 网站设计的总结 带你 一文搞懂 全流程。 概念速懂:域名与服务器不是两回事 很多初学者一上来就混淆域名和服务器。打个比方,域名是门牌号,服务器是房子。你注册了… · 2026/9/27 2:53:47

5G核心网SBA与CUPS实战部署指南
5G核心网SBA与CUPS实战部署指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:53:47

Cascode共源共栅放大器设计:从原理到仿真实战
Cascode共源共栅放大器设计:从原理到仿真实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:53:47

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码