# Summary
中文成语之类不算是压缩,而是一种哈希表,让你记住键值对,然后只保留键。也可以说是中文密码本,成语就是密码,成语故事就是密码对应的内容,我们从小就要背密码本所以一看密码就知道对应的内容
## 是什么?
通俗定义:把任意长度的数据变成固定长度的"指纹"
**生活类比:榨汁机**
```Java
输入(水果) 榨汁机 输出(果汁)
─────────────────→ ┌─────┐ ────→ ─────────
🍎 苹果 │SHA- │ 🥤 250ml
🍎🍎🍎 三个苹果 │ 256 │ 🥤 250ml
🍉 西瓜 │ │ 🥤 250ml
🍇🍓🍊 混合水果 └─────┘ 🥤 250ml
特点:
- 无论放多少水果 → 输出都是250ml
- 不同水果 → 不同味道的果汁
- 无法从果汁还原出水果
```
## 不安全,会碰撞
```python
# 简单的哈希函数
def simple_hash(text):
return len(text) # 只返回长度
simple_hash("Hello") → 5
simple_hash("World") → 5
simple_hash("abcde") → 5
```
❌ 问题:很多不同输入产生相同输出(**碰撞**)
[[SHA‑256]]是安全的不碰撞的
## 和布隆的区别
- 哈希表:插入“hello”→表中存{sha256(hello):1};再来“hello”→计数变2;能输出哪些行是唯一的。
- [[布隆过滤器]]:插入“hello”→置位k个bit;查询“hello”→大概率命中;查询“world”→可能误报“见过”;无法告诉“hello”出现了几次或
-
# Cues
[[SHA‑256]]
[一致性哈希](一致性哈希.md)