Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

SHA哈希算法

问题描述

SHA (Secure Hash Algorithm) 是一种密码学哈希函数,用于生成固定长度的哈希值。SHA-256是最常用的版本,生成256位(32字节)的哈希值。

算法思想

核心原理

  1. 填充:将消息填充到512位的倍数
  2. 分块:将消息分成512位的块
  3. 初始化:使用固定的初始哈希值
  4. 处理:对每个块进行一系列位操作和逻辑运算
  5. 输出:将最终的哈希值拼接输出

SHA-256特点

  • 确定性:相同输入总是产生相同输出
  • 单向性:无法从哈希值反推原始消息
  • 抗碰撞性:难以找到两个不同消息产生相同哈希值
  • 雪崩效应:输入的微小变化导致输出的巨大变化

复杂度分析

  • 时间复杂度: O(n),其中n是输入长度
  • 空间复杂度: O(1),固定大小的状态

实现列表

语言 文件名
C sha.c
Java SHA.java
Go sha.go
Python sha.py
JavaScript sha.js
Rust sha.rs
TypeScript SHA.ts

应用场景

  • 密码存储
  • 数据完整性校验
  • 数字签名
  • 区块链

注意事项

此实现仅用于教学目的,实际应用应使用成熟的加密库。