
【计】 hash function; hashing function
散列函数(Hash Function),在计算机科学和密码学中是一种将任意长度的输入数据(称为“消息”)映射为固定长度输出数据(称为“散列值”、“哈希值”或“摘要”)的算法。其核心目标是高效地将数据压缩为独特且可验证的表示形式。
功能 | 应用实例 |
---|---|
数据完整性验证 | 文件下载校验(如MD5/SHA校验码) |
密码存储保护 | 系统用户密码加密存储(加盐哈希) |
数据唯一标识 | 数据库主键生成(如内容寻址存储) |
快速数据检索 | 哈希表(Hash Table)数据结构 |
区块链技术基础 | 比特币工作量证明(PoW)机制 |
国家标准与技术研究院(NIST)
定义散列函数为“将比特串映射为固定长度比特串的函数,满足密码学安全性要求”(NIST FIPS 180-4标准)
来源:NIST Computer Security Resource Center
中国科学院《计算机科学技术名词》
明确“散列函数”为中文规范术语,强调其“将任意长消息压缩到固定长摘要”的特性
来源:全国科学技术名词审定委员会
密码学经典著作
Bruce Schneier在《应用密码学》中指出:“密码散列函数必须能抵抗原像攻击和碰撞攻击”
来源:Schneier, B. (1996). Applied Cryptography.
注:密码学领域推荐使用SHA-256或更高强度算法,避免使用已破译的MD5/SHA-1。实际应用中需结合盐值(salt)和迭代哈希(如PBKDF2)提升安全性。
: NIST. Secure Hash Standard (SHS). FIPS PUB 180-4
: 全国科学技术名词审定委员会. 《计算机科学技术名词》第三版
: Schneier, B. Applied Cryptography: Protocols, Algorithms and Source Code in C
散列函数(Hash Function)是一种将任意长度的输入数据(如文本、文件)转换为固定长度输出值的数学函数。其核心特性是单向性和确定性,广泛应用于数据校验、密码学、数据结构等领域。以下是详细解释:
确定性
同一输入始终生成相同的哈希值。例如,输入"hello"通过SHA-1算法生成的哈希值永远是"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"()。
单向性
无法从哈希值反推原始输入数据。即使知道算法规则,逆向计算在计算上不可行。
抗碰撞性
极难找到两个不同的输入生成相同的哈希值。例如,MD5因碰撞漏洞被淘汰(),而SHA-256仍被广泛使用。
高效性
无论输入大小,哈希计算均需快速完成,适用于实时数据处理。
数据完整性验证
通过对比文件哈希值,验证传输或存储过程中是否被篡改(如软件下载时的校验码)。
密码存储
系统存储用户密码的哈希值而非明文,即使数据库泄露,攻击者也无法直接获取密码(需结合“加盐”技术增强安全性)。
区块链技术
比特币使用SHA-256生成区块哈希,确保链上数据不可篡改()。
哈希表数据结构
通过哈希值快速定位数据,实现O(1)时间复杂度的查找操作。
算法 | 输出长度 | 安全性 | 典型用途 |
---|---|---|---|
MD5 | 128位 | 已不安全 | 旧版文件校验 |
SHA-1 | 160位 | 已发现碰撞漏洞 | 逐渐被淘汰 |
SHA-256 | 256位 | 目前安全 | 区块链、数字签名 |
BLAKE3 | 可变长度 | 高安全性 | 高性能场景(如数据库) |
如需更深入的技术细节,可参考密码学标准文档(如NIST FIPS 180-4)或开源哈希库的实现(如OpenSSL)。
奥斯陆结晶器八氢雌甾酮蹦蹦跳跳部件测试备忘录不平衡作用底子纸豆薯苷儿童脱离关系法放射器分产主义风扇叶片支架公证手续交感于基因遗传学空气蒸汽混合物库施曼氏溶液两面角流水作业生产法力学体系耐日光物料平液水准瓶破坏真空浅陋的穹窿状的赦免数组信息向量表碳┹离子重排铁心感应通气蜡条未摊还不带息公司债券折价