Skip to content

Commit a6a001e

Browse files
committed
feat: init
1 parent 6413595 commit a6a001e

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

15密码学/4数字签名.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Java和Windows服务器偏向于使用这种编码格式.
6060

6161
### 总结:
6262

63-
1. 信息 + HASH = 摘要 摘要 + 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)
63+
1. 信息 -> HASH = 摘要 摘要 -> 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)
6464

6565
2. 公钥 + 相关信息 + CA私钥 = 数字证书(验证发送者是否正确,是可信任的公钥)
6666

15密码学/5单向加密.md

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,41 @@
11
## 单向加密(散列算法)
22

3-
散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。
4-
单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:
5-
1. MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
6-
2. SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;
3+
### 简介
4+
**单向加密**​(又称哈希算法/Hash)是一种将任意长度输入数据转换为固定长度唯一哈希值的加密方法。其核心特点是:
5+
-**不可逆性**:无法从哈希值反推原始数据
6+
-**确定性**:相同输入始终产生相同哈希值
7+
-**抗碰撞性**:极难找到两个不同输入产生相同哈希值
8+
-**雪崩效应**:输入微小变化会导致哈希值巨大差异
79

8-
### SHA-1与MD5的比较
10+
---
911

10-
因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
11-
1. 对强行供给的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,而对SHA-1则是2160数量级的操作。这样,SHA-1对强行攻击有更大的强度。
12-
2. 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。
13-
3. 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。
12+
### **常见散列算法对比**
13+
14+
|**算法**|**输出长度**|**安全性**|**特点**|**适用场景**|
15+
|--------------|--------------|-------------------------------|-------------------------------------------------------------------------|---------------------------------|
16+
|**MD5**| 128 bits | ❌ 已不安全(易碰撞攻击) | - 计算速度快<br>- 广泛用于文件校验(已不推荐用于安全场景) | 文件完整性校验(非敏感场景) |
17+
|**SHA-1**| 160 bits | ❌ 已不安全(2017年被攻破) | - 曾用于SSL/TLS证书<br>- 已被弃用 | 历史遗留系统(应尽快迁移) |
18+
|**SHA-256**| 256 bits | ✅ 安全(SHA-2家族成员) | - 比特币和区块链的默认算法<br>- 抗量子计算攻击能力较弱 | 数字签名、区块链、SSL/TLS |
19+
|**SHA-3**| 224/256/384/512 bits | ✅ 安全(新一代标准) | - 基于Keccak算法<br>- 设计上抵抗所有已知攻击(包括量子计算) | 高安全性需求场景(如政府数据加密) |
20+
|**bcrypt**| 可变长度 | ✅ 安全(密码哈希专用) | - 自适应哈希(可调计算成本)<br>- 内置盐值(salt)防彩虹表攻击 | 密码存储(如用户登录系统) |
21+
|**scrypt**| 可变长度 | ✅ 安全(抗GPU/ASIC攻击) | - 内存密集型设计<br>- 增加硬件暴力破解成本 | 加密货币(如莱特币)、密码存储 |
22+
|**Argon2**| 可变长度 | ✅ 安全(2015年密码哈希竞赛胜者)| - 抗侧信道攻击<br>- 可调节时间、内存和并行度 | 现代密码存储(推荐首选) |
23+
24+
---
25+
26+
### **算法选择建议**
27+
1.**文件校验/数据摘要**
28+
- 非敏感场景:MD5(仅用于快速校验,如软件下载)
29+
- 安全场景:SHA-256 或 SHA-3
30+
31+
2.**密码存储**
32+
- 优先选择:Argon2、bcrypt 或 scrypt
33+
-**禁止使用**:MD5、SHA-1(易被彩虹表破解)
34+
35+
3.**区块链/数字签名**
36+
- 主流选择:SHA-256(比特币)、RIPEMD-160(比特币地址生成)
1437

15-
### 特点
1638

17-
1. 特征:雪崩效应、定长输出和不可逆。
18-
2. 作用是:确保数据的完整性。
19-
3. 加密算法:md5(标准密钥长度128位)、sha1(标准密钥长度160位)、md4、CRC-32 sha256 sha512
20-
4. 加密工具:md5sum、sha1sum、openssl dgst sha256sum。
21-
5. 计算某个文件的hash值,例如:md5sum/shalsum FileName,openssl dgst –md5/-sha1
2239

2340
### MurmurHash
2441

@@ -45,6 +62,3 @@ Poseidon 是一种现代加密哈希函数,设计用于零知识证明(Zero-
4562
- 灵活性: Poseidon 可以根据不同的应用需求进行配置,支持不同的安全参数和性能优化。
4663
- 安全性: Poseidon 提供了较高的安全性,抗碰撞攻击、预映射攻击和第二预映射攻击,满足现代密码学的安全需求。
4764

48-
##### 使用
49-
50-
Redis,Memcached,Cassandra,HBase,Lucene

0 commit comments

Comments
 (0)