哈希算法:密码学的基础构件

密码学之哈希算法 哈希函数,也称为散列函数,是一种将任意长度的数据转换为固定长度的字符串的数学函数。这种字符串被称为哈希值或消息摘要。哈希函数HHH将输入数据MMM映射到一个固定长度的哈希值hhhhHMh = H(M)hHMMMM代表输入的消息,它可以是任意长度。HHH是哈希函数。hhh是输出的哈希值,长度固定。SHA系列算法由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布。自1993年SHA-0首次发布以来,该系列经历了多次重要的迭代和更新。SHA-0。 阅读详情

哈希算法是密码学中最基础的构件之一。

它可以把任意长度的数据映射成固定长度的摘要。例如,SHA-256 可以输出 32 字节摘要。

在嵌入式系统中,哈希算法常用于:

  • 固件完整性校验;
  • 消息摘要;
  • 证书摘要;
  • 配置参数校验;
  • 密钥派生;
  • 日志防篡改链。

需要注意的是,Hash 可以发现数据变化,但不能单独证明数据来源。

关键词

工程含义

Hash / 摘要

Hash 发现数据变化,但不能单独证明数据来源。

1. 哈希是什么

哈希算法,也叫摘要算法。

它的作用是把一段任意长度的数据,经过计算后,生成一个固定长度的摘要值。

例如:

输入数据:firmware.bin
哈希算法:SHA-256
输出摘要:32 字节 Hash 值

无论输入数据是几 KB、几 MB,还是几十 MB,SHA-256 最终都会输出固定的 32 字节摘要。

因此,Hash 可以理解为数据的“指纹”。

只要原始数据发生变化,摘要值就会随之变化。


2. 哈希的基本特性

一个安全的哈希算法通常应具备以下特性。

2.1 容易计算

给定一段输入数据,计算它的 Hash 应该是高效、可实现的。

这对嵌入式系统很重要,因为 MCU 的主频、RAM 和 Flash 资源通常比较有限。


2.2 不可逆

从原始数据计算 Hash 很容易,但从 Hash 反推出原始数据在计算上不可行。

也就是说:

数据 → Hash:容易
Hash → 数据:困难

因此,Hash 不是加密。

加密通常可以通过密钥解密还原明文,而 Hash 是单向函数,正常情况下不能还原原文。


2.3 雪崩效应

原文只要发生很小变化,输出摘要也会发生明显变化。

例如,固件中只修改 1 个字节,最终得到的 Hash 也会完全不同。

这使得 Hash 非常适合用于判断数据是否发生变化。


2.4 抗碰撞

理想情况下,很难找到两个不同的输入,使它们得到相同的 Hash 值。

如果两个不同固件能得到相同摘要,就会破坏完整性校验的可靠性。

因此,在安全设计中,应选择当前仍被认为安全的哈希算法,例如 SHA-256,而不是 MD5、SHA-1 这类已经不适合作为安全用途的算法。


3. 哈希能做什么

在嵌入式系统中,Hash 的应用非常广。

3.1 固件镜像校验

设备可以对应用固件计算 Hash,用于判断固件内容是否发生变化。

例如:

Bootloader 读取 App 固件
Bootloader 计算 App Hash
Bootloader 对比期望 Hash

如果 Hash 不一致,说明固件内容可能被破坏或被篡改。


3.2 升级包完整性检查

OTA 或本地升级包下载完成后,可以先计算升级包 Hash,判断下载过程是否出错。

这可以发现:

  • 传输错误;
  • 存储损坏;
  • 文件不完整;
  • 数据被修改。

但是,如果只校验 Hash,而不验证签名,仍然不能证明升级包来自官方。


3.3 文件摘要和配置参数校验

Hash 可以用于配置参数、校准参数、生产参数的摘要计算。

例如:

  • 出厂校准参数;
  • 传感器补偿参数;
  • 设备配置文件;
  • 生产序列号表;
  • 授权配置表。

系统启动时重新计算 Hash,可以判断这些数据是否被修改。


3.4 证书内容摘要

在证书链、数字签名和安全通信中,Hash 经常作为基础步骤。

通常不会直接对完整大文件做签名,而是先计算数据 Hash,再对 Hash 进行签名。

这样可以降低计算量,也便于统一处理固定长度的数据摘要。


3.5 日志防篡改链

Hash 还可以用于构建日志防篡改链。

例如,每条日志不仅包含当前事件内容,还包含上一条日志的 Hash。

Log_1_Hash = Hash(Log_1)
Log_2_Hash = Hash(Log_2 + Log_1_Hash)
Log_3_Hash = Hash(Log_3 + Log_2_Hash)

这样一旦中间某条日志被修改,后续 Hash 链都会不一致。

不过,如果要防止攻击者整体重算日志链,还需要结合密钥、MAC、签名或安全存储。


4. 安全启动中的 Hash

在安全启动中,Hash 通常不是单独使用,而是和数字签名一起使用。

典型流程如下:

  1. Bootloader 读取应用固件;
  2. 计算应用固件的 Hash;
  3. 读取固件签名;
  4. 使用内置公钥验证签名;
  5. 判断签名中的 Hash 是否与当前固件 Hash 一致;
  6. 验证通过后,才允许跳转到应用程序。

这里的关键点是:

Hash 判断固件有没有变化;
签名证明这个 Hash 是否来自合法发布方。

如果只有 Hash,没有签名,攻击者修改固件后也可以重新计算 Hash。

因此,安全启动不能只依赖 Hash 校验。


5. 哈希不能做什么

Hash 很重要,但它不是万能的。

5.1 单独 Hash 不能证明数据来源

Hash 只能证明:

当前数据和摘要是否匹配。

它不能证明:

摘要本身是不是可信的。

如果攻击者修改数据后,重新计算一个新的 Hash,并把新 Hash 一起发给设备,那么接收方仍然可能被骗。

所以,单独 Hash 不能证明数据是谁发来的。


5.2 Hash 不能替代认证

认证要解决的是:

对方是否拥有合法密钥或私钥?

Hash 本身没有密钥参与,任何人都可以计算。

因此,它不能用于证明设备身份,也不能证明升级包来自官方发布方。

工程上需要使用:

  • MAC;
  • HMAC;
  • 数字签名;
  • 证书链;
  • 挑战响应。

这些机制才能建立身份可信。


5.3 Hash 不能替代加密

Hash 是单向摘要,不是加密算法。

它不能用于还原原文,也不能保护明文内容不被别人读取。

如果数据内容本身需要保密,应使用加密算法,例如:

  • AES;
  • ECC 密钥交换 + 会话密钥;
  • TLS / DTLS;
  • 加密 Flash;
  • 加密升级包。

6. 与 CRC 的区别

CRC 和 Hash 都可以发现数据变化,但它们的安全属性不同。

对比项

CRC

Hash

主要用途

检测通信误码、存储误码

数据摘要、完整性基础构件

是否密码学安全

否

取决于算法,例如 SHA-256 是安全哈希算法

是否抗恶意篡改

否

单独使用仍不够,需要结合 MAC 或签名

是否容易被重新计算

容易

也可以被重新计算

是否能证明来源

不能

不能

典型场景

通信帧校验、Flash 数据误码检测

固件摘要、证书摘要、安全启动、签名输入

CRC 主要用于检测随机错误,例如通信误码、存储损坏和数据传输异常。

它算法简单、速度快,非常适合底层通信协议。

但是,CRC 不是密码学安全算法。

攻击者可以修改数据后重新计算 CRC,使接收方误以为数据没有变化。


7. 为什么不能用 CRC 替代 Hash 或签名

在安全设计中,不能用 CRC 替代 Hash,更不能用 CRC 替代签名。

原因是:

  • CRC 设计目标是检测随机误码,不是抵抗恶意攻击;
  • CRC 没有抗碰撞安全性;
  • CRC 没有密钥参与;
  • CRC 很容易被攻击者重新计算;
  • CRC 不能证明数据来源;
  • CRC 不能证明固件来自官方发布方。

因此:

CRC 适合做通信可靠性校验;
Hash 适合做安全摘要基础;
MAC / 数字签名才适合做可信验证。


8. 工程判断方法

在项目中,可以用下面几个问题判断是否应该使用 Hash,以及是否还需要进一步安全机制。

8.1 只是为了发现随机错误吗?

如果只是为了发现通信误码、Flash 读写错误或数据包损坏,CRC 通常就够用。


8.2 是否要判断数据有没有被恶意修改?

如果需要抵抗恶意修改,单独 CRC 不够,应至少考虑 Hash,并进一步结合 MAC 或数字签名。


8.3 是否要证明数据来自合法对象?

如果需要证明来源,单独 Hash 也不够,应使用:

  • HMAC;
  • MAC;
  • 数字签名;
  • 证书链。

8.4 是否要保护数据内容不被读取?

如果需要隐藏内容,Hash 不够,应使用加密机制。


9. 嵌入式工程示例

示例 1:Bootloader 校验 App

普通可靠性校验:

Bootloader 计算 App CRC
CRC 正确 → 跳转 App

这种方式可以发现 Flash 损坏,但不能防止攻击者替换 App 后重算 CRC。

安全启动设计:

Bootloader 计算 App Hash
Bootloader 使用公钥验证 App 签名
签名正确 → 跳转 App
签名失败 → 拒绝启动

这才可以证明 App 来自合法发布方,并且没有被篡改。


示例 2:升级包下载

普通下载校验:

下载升级包
计算 CRC / Hash
判断文件是否下载完整

安全升级校验:

下载升级包
计算升级包 Hash
验证升级包签名
检查版本号和防回滚计数器
验证通过后写入 Flash

Hash 负责发现内容变化,签名负责证明升级包来源。


示例 3:配置参数保护

如果只是防止掉电写坏或 Flash 位翻转,可以使用 CRC。

如果要防止用户或攻击者私自修改配置参数,则应使用:

  • Hash + 签名;
  • HMAC;
  • 安全存储;
  • 权限控制;
  • 参数版本号;
  • 防回滚计数器。

10. 工程总结

Hash 解决的是:

数据有没有变。

但 Hash 不解决:

数据是谁发来的;
数据是否来自合法发布方;
数据内容是否需要隐藏。

因此,工程上通常要把 Hash 与密钥、MAC、HMAC 或数字签名结合使用。

简单来说:

CRC 解决随机误码;
Hash 解决数据摘要;
MAC / 签名解决可信来源;
加密解决内容保密。

在嵌入式安全设计中,Hash 是基础构件,但不是完整方案。

密码学基础(一)——哈希算法 由于哈希算法的单向性,可以从前一个数据块原文计算出下一个数据块所用的哈希值输入,但已知一个哈希值输入,难以反推出所有可能的数据块原文。哈希算法:哈希算法不可逆,包括:MD4、MD5、hash1、ripeMD160、SHA256、SHA3、Keccak256、国家标准SM3(国家密码管理局)哈希加“盐”(salt),所谓加“盐”,就是在明文的随机位置加上一串随机的字符串再进行hash,防止彩虹表攻击。加密/解密算法:加密解密算法可逆,但是必须要有秘钥,对称加密,非对称加密,数字签名算法DSA。 阅读详情

相关推荐

探索哈希算法的魅力:原理、应用与安全性分析

哈希算法,又称散列算法,是一种将任意长度的数据映射为固定长度数据的算法。它的核心思想是将输入数据通过一定的计算,生成一个唯一的、固定长度的字符串,这个字符串称为哈希值。

zwa20110606的博客 1888

哈希算法:完整讲解与实现

哈希算法(Hash Algorithm)是一种映射函数,将任意长度的输入数据映射为固定长度的输出数据。这个输出称为哈希值(Hash Value)或消息摘要特点:将输入映射为固定的 128 位哈希值。快速,但安全性较低。用途:文件完整性校验。SHA-1:生成 160 位哈希值,比 MD5 更安全,但已被淘汰。SHA-256:更安全的算法,生成 256 位哈希值,广泛用于密码学。特点:快速计算,生成 32 位校验值,主要用于数据传输。用途:网络协议中的数据完整性验证。

Interview_TC的博客 1万+

区块链:哈希算法与一致性哈希算法

哈希算法是指通过哈希函数(Hash Function)对任意长度的输入数据(比如文件、消息、数字等)进行转换,生成一个固定长度的哈希值(Hash Value)的过程。在区块链中,哈希算法常用于区块的数据验证和区块链的安全性保证。抗冲突(collision-resistance): 即不同的输入不能产生相同的输出;信息隐藏性(information hiding): 即无法通过哈希函数的输出反推出其输入;

读万卷书 行万里路 3656

科普文:【哈希算法:CRC哈希系列、BKDR Hash、APHash、DJB Hash、JSHash、RSHash、SDBM Hash、PJWHash、ELFHash、MurmurHash、FNV等】

在编程中,字符串转hash是一个常见且重要的操作。 为了简化这一过程,我们可以创建一个工具类HashUtils,其中包含了多种常用的字符串转hash算法,如CRC、MD5、SHA系列(SHA-1、SHA-256等)、BKDR hash、APHash、DJB Hash、JSHash、RSHash、SDBM Hash、PJWHash和ELFHash。 这些字符串转哈希算法简介如下: BKDR Hash:以131为底的对数计算,适用于字符串哈希。 APHash:通过加法、位操作和乘法计算哈希值,适用于字符串

为无为,事无事,味无味。 2181

[js解密]一文看懂 SHA1 与 SHA256:密码学哈希算法的前世今生

历史脉络 × 技术对比 × 视觉叙事 × 实践互动📌:Equifax数据泄露、Git提交伪造等案例,揭示信息防伪的刚性需求:从SHS(Secure Hash Standard)到NIST标准化进程📌📌:512位分块→80轮位运算(AND/OR/XOR/位移):理论碰撞难度仅280)📌“即使修改宇宙中一个原子的状态,其SHA256值也会彻底改变” —— 雪崩效应具象化fill:#333;color:#333;color:#333;fill:none;SHA1/SHA2基于Merkle-Damgård结

mxd01848的博客 1263

哈希算法教程(个人总结版)

哈希算法(Hash Algorithm)是一种将任意长度的输入(也称为消息)转换为固定长度的输出(也称为哈希值、散列值、摘要)的算法。SHA-256(Secure Hash Algorithm 256-bit)是SHA-2(Secure Hash Algorithm 2)家族中的一种,广泛应用于安全性要求较高的场景,如区块链、数字签名等。散列函数用于哈希表(Hash Table)等数据结构中,将数据映射到固定大小的数组上,以实现高效的数据存储和检索。哈希算法可以用于数据库的索引,提高数据检索的效率。

年糕的博客 5715

哈希算法(简单介绍)

哈希算法什么是哈希算法?1. 哈希算法的基础2. 哈希函数的主要作用3. 哈希函数分类4. 常见的Hash算法 什么是哈希算法? 哈希是密码学的基础 哈希函数的运算结果简称哈希值 哈希函数也称散列函数 根据维基百科的定义,哈希函数是将任意大小的数据,生成出一个固定长度的数据来作为它的映射(一一对应),它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。 1. 哈...

liuhao的博客 3586

避坑指南:ZYNQ MPSOC QSPI固化时MT25QU256闪存的特殊配置

本文针对Xilinx ZYNQ UltraScale+ MPSoC平台,详细解析了使用Vitis工具将BOOT.bin固化至Micron MT25QU256ABA QSPI NOR Flash时的特殊配置与避坑指南。重点阐述了Init文件的真实作用、电压与频率的精确匹配策略,以及针对该闪存型号的初始化序列,帮助工程师解决烧录失败、启动异常等常见问题,确保系统可靠启动。

weixin_29175469的博客 271

密码学之Hash散列算法

      前言 在第一篇文章中已经有介绍区块链技术概念,我们知道区块链主要是由共识算法机制、p2p网络、密码学这几个核心技术组成,前面几篇文章讲了共识算法,p2p网络,这次我们谈一下密码学,密码学是区块链系统的基础,如果没有密码学技术支撑,区块链就仅仅是一个普通的分布式日志系统。密码学在区块链上应用比较多的主要有两种加密算法: 一是哈希散列算法,二是非对称加密算法。比如在前面的第三章...

to_cm的专栏 1万+

使用Intel编译器编译OpenFOAM

本文总结了使用INTEL编译器编译OpenFOAM的过程

姜蜉蝣的博客 1547

TP4056锂电池充电电路设计原理与工程实践

锂离子电池充电管理是嵌入式电源系统的核心基础技术,其本质是通过恒流恒压(CC/CV)控制策略,匹配电池电化学特性以实现安全、高效、长寿命充放电。TP4056作为典型线性充电IC,以精简外围实现预充、恒流、恒压及自动截止全周期管理,但受限于线性拓扑的热耗散特性,必须协同散热设计、电阻精度选型与PCB布局进行系统级优化。该方案广泛应用于STM32智能小车、便携传感器节点等3.7V单节锂电供电场景,兼顾成本、可靠性与工程可实施性,是入门嵌入式硬件电源设计的关键实践范例。

weixin_36064575的博客 220

Rust Bitcoin 中的哈希算法:SHA256、RIPEMD160 与 Hash160 深度解析

Rust Bitcoin 是一个功能强大的 Rust 比特币库,提供了多种密码学哈希算法的实现,包括 SHA256、RIPEMD160 和 Hash160。这些哈希算法在比特币协议中扮演着至关重要的角色,用于数据完整性验证、地址生成和交易确认等关键功能。 [![Rust Bitcoin 哈希算法架构图](https://raw.gitcode.com/gh_mirrors/ru/rust-bit

gitblog_00293的博客 773

同花顺Supermind量化交易 技术面分析专题(一)-- 相似k线的形态验证与选股

W底”,“多头上涨”,“趋势回踩”,”上涨中继“这些都是常见的K线形态,以”上涨中继“为例,当股价快速上涨后,出现盘整形态而非顶部形态,预示股价还会进一步上涨,那么本节主要讲述”上涨中继”形态是否能够预测未来股价上涨,以及如何应用“上涨中继”形态,来快速选股。"相似K线"技术相比于传统的K线组合而言更具技术性,其还有较多的运用空间,比如:运用顶部形态来监控个股潜在的下跌风险,运用相似度来监控个股是否脱离大盘走势,研究各类形态的上涨预测能力,并应用于选股等等。第一步:选取一段标准的“上涨中继”形态K线图。

qq_22808537的博客 4549

Solidity基础 -- 哈希算法

哈希算法(Hash Algorithm),也称为散列算法,是一种将任意长度的输入数据(也称为消息)通过特定的数学函数转换为固定长度输出的过程。这个固定长度的输出被称为哈希值(Hash Value)或哈希码(Hash Code)。

Dalik1018的博客 1271

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 333

奥比中光Gemini335L SDK实战:从标定参数到3D点云转换

本文详细介绍了奥比中光Gemini 335L深度相机的SDK实战应用,重点讲解如何跳过繁琐的棋盘格标定,直接调用出厂预标定参数实现高效的3D点云转换。通过解析内参、外参获取及四种核心坐标转换模式,并结合OpenCV等工具,指导开发者快速将相机集成到机器人抓取、三维测量等项目中,实现开箱即用的3D视觉解决方案。

raspberrypi5的博客 639

哈希算法讲解

哈希是密码学的基础,理解哈希是理解数字签名和加密通信等技术的必要前提。 一. 基本含义: 哈希,英文是 hash ,本来意思是”切碎并搅拌“,有一种食物就叫 Hash ,就是把食材切碎并搅拌一下做成的。哈希函数的运算结果就是哈希值,通常简称为哈希。哈希函数有时候也翻译做散列函数。 根据维基百科的定义,哈希函数要做的事情是给一个任意大小的数据生成出一个固定长度的数据,作为它的映射。所谓映射就是......

EmotionComputer 2296

第3.2.1章 Eigen代码实战:四元数赋值用法总结及与变换矩阵转换

Eigen库中四元数(Quaternion)的赋值方法解析:Quaterniond和Quaternion<double>本质相同,但Quaterniond是更简洁的别名。主要赋值方式包括直接构造(w,x,y,z分量、旋转矩阵或轴角)、赋值运算符和成员函数赋值。使用时需注意参数顺序、归一化处理和头文件包含,常见错误包括模板参数缺失和构造顺序错误。四元数广泛应用于旋转矩阵转换、姿态组合等场景,合理选择赋值方式能提高代码可读性和正确性。

行知SLAM 587

密码学基础:从哈希到加密

1.背景介绍 密码学是计算机科学的一个重要分支,它研究如何在保证数据安全的前提下,实现数据的传输和存储。密码学技术广泛应用于互联网、金融、军事等领域,为我们的生活和工作提供了安全的保障。在这篇文章中,我们将从哈希到加密的方面进行深入探讨。 1.1 哈希算法的基本概念 哈希算法是密码学中最基本的概念之一,它是一种将输入数据映射到固定长度输出的算法。哈希算法的主要特点是: 确定性:对于任何给...

AI天才研究院 1116

Jetson 平台编译安装 FFmpeg 7.1(支持 Nvmpi + SRT + x265)

摘要: 本文详细介绍了在NVIDIA Jetson平台上编译FFmpeg 7.1并集成关键功能的全过程。通过补丁方式加入Nvmpi实现硬件加速支持,同时编译集成x265编码器和SRT低延迟传输协议。步骤涵盖:1)安装x265编码器;2)配置SRT协议支持;3)编译jetson-ffmpeg的Nvmpi接口;4)定制化编译FFmpeg 7.1;5)验证模块集成情况。最终实现支持硬件编解码、高效HEVC压缩和可靠推流的增强版FFmpeg,为Jetson平台的音视频处理提供完整解决方案。

J。 345

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

哈希算法相关内容

可以说,哈希函数是一个抽象的概念,定义了数据到哈希值的映射关系及相关特性,而散列算法是实现这种映射的具体技术和手段,是对哈希函数的具体实现方式。例如在密码存储中,将用户密码通过散列函数生成散列值后存储,当用户登录时,对输入的密码再次进行散列计算,将得到的散列值与存储的散列值进行比对,以验证密码的正确性,而无需直接存储明文密码,提高了密码的安全性。尽管在理论上可能存在不同数据具有相同散列值的情况(称为哈希碰撞),但优秀的散列函数能够将这种概率控制在非常小的范围内,以确保散列值的唯一性和可靠性。

cliy_的博客 1774

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

哈希算法(Hash函数)简单介绍

1、什么是哈希算法?(Hash函数) 哈希算法的定义和原理: 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则,就是哈希算法。而通过原始数据映射之后得到的二进制值串就是哈希值。 设计一个优秀的哈希算法,需要满足下面几点要求: a.从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法) b.对输入的数据比较敏感,原始数据即使修改一个字节,最后得到的哈希值也大不相同 c.散列冲突的概率要小,对于不同的原始数据,哈希值相同的概率非常小 d.哈希算法的执行效率要尽量高,针对较长的文本,

qiye622的博客 8426

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

哈希算法和哈希表

这篇文章将会简单介绍几种常见的哈希算法,然后是C++或Java的标准库中哈希函数与哈希表的基本使用,最后将会提供一个使用C语言手搓FNV-1a算法的示例,以及使用它实现的哈希表。这篇文章虽然内容不多,但前前后后,也是删删改改了好多天了,虽然内容还是不尽人意,但希望此文能为你提供一点帮助,不说理解哈希,至少能够使用吧。不知道某位大佬会不会来看这篇文章,关于哈希表的部分我不是很拿得准,如果理解有误,请帮我指出。

qq_41757528的博客 2534

哈希算法(Hash)

哈希算法是将输入数据转换为固定长度哈希值的算法,具有确定性、快速计算、冲突抵抗性、雪崩效应和单向性的特点。哈希算法在数据校验、密码存储、数字签名、哈希表、区块链等众多领域有着广泛的应用。

宋发元 1487

什么是哈希算法?

哈希算法的基本含义         哈希是密码学的基础,理解哈希是理解数字签名和加密通信等技术的必要前提。         哈希,英文是 hash ,本来意思是”切碎并搅拌“,有一种食物就叫 Hash ,就是把食材切碎并搅拌一下做成的。哈希函数的运算结果就是哈希值,通常简称为哈希。哈希函数有时候也翻译做散列函数。         根据维基百科的定义,哈希函数要做的事情是给一个任意大...

每天做一点 6万+
上一篇: 身份识别、身份认证与授权的区别
下一篇: MAC 消息认证码:同时验证来源和完整性
Let's Chat Coding
博客等级 码龄3年 1020粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值