对象指纹哈希
灵感:热门轻量库 ohash(对象哈希与相等比较)。
> 小四原创:筛选/草稿对象 → hash → 缓存键或跳过重复请求。
> 非加密用途;勿当安全签名。
何时使用
- 列表筛选结果缓存键
- 草稿是否相对基线变化(可配
isEqual) - Demo 去重提交
硬约束
- 依赖:
ohash。 - 仅作缓存/去重指纹,不作安全签名。
- 实现要点注释标 小四原创。
- 不做完整 Diff UI。
推荐实现
import { hash, isEqual } from 'ohash'
// 小四原创:对象指纹哈希
export function filterCacheKey(filter: Record<string, unknown>): string {
return hash(filter)
}
export function sameFilter(a: unknown, b: unknown): boolean {
return isEqual(a, b)
}
Agent 步骤
npm i ohash。- 请求前算
filterCacheKey;命中缓存则跳过。 - 自测:键序不同但值相同 → 同 hash(稳定序列化)。
不要做
- 当 JWT/密码哈希。
- 对含敏感明文的对象落日志时打印完整 hash 输入。
附加
- README.md · reference.md · templates/usage.md