SHA (Secure Hash Algorithm) 是一种密码学哈希函数,用于生成固定长度的哈希值。SHA-256是最常用的版本,生成256位(32字节)的哈希值。
- 填充:将消息填充到512位的倍数
- 分块:将消息分成512位的块
- 初始化:使用固定的初始哈希值
- 处理:对每个块进行一系列位操作和逻辑运算
- 输出:将最终的哈希值拼接输出
- 确定性:相同输入总是产生相同输出
- 单向性:无法从哈希值反推原始消息
- 抗碰撞性:难以找到两个不同消息产生相同哈希值
- 雪崩效应:输入的微小变化导致输出的巨大变化
- 时间复杂度: 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 |
- 密码存储
- 数据完整性校验
- 数字签名
- 区块链
此实现仅用于教学目的,实际应用应使用成熟的加密库。