Files
core/lib/doc/dever-crypto.md
2026-11-03 03:32:07 +00:00

64 lines
1.6 KiB
Markdown

# 密码与摘要
密码哈希和校验会阻塞,异步流程用 blocking 调用;摘要和 HMAC 是纯计算。Secret 不可打印。
## dever.crypto.TokenResult
随机 Secret 的生成结果,失败包含原因。
分支:
- `Ready(value: Secret)`:成功值
- `error Failed(message: Text)`:失败原因
## dever.crypto.HashResult
密码哈希的生成结果,成功包含 PHC 文本。
分支:
- `Ready(value: Text)`:成功值
- `error Failed(message: Text)`:失败原因
## dever.crypto.VerifyResult
密码校验结果;成功值表示密码是否匹配,失败表示哈希无效或校验无法完成。
分支:
- `Ready(value: Bool)`:成功值
- `error Failed(message: Text)`:失败原因
## dever.crypto.token
生成指定字节数的随机 Secret,允许 16–1024 字节。随机源不可用时失败。
## dever.crypto.passwordHash
用 Argon2id v19 生成密码哈希。参数为 19456 KiB、2 轮、1 lane 和 32 字节结果。
## dever.crypto.passwordVerify
校验密码与 PHC 哈希。密码不匹配返回 false;哈希损坏或资源参数超限时失败。
## dever.crypto.sha256
计算 SHA-256,返回 32 字节摘要。
## dever.crypto.hmacSha256
用 Secret 密钥计算 HMAC-SHA256,返回 32 字节结果。
## dever.crypto.constantTimeEq
对相同长度的内容使用常量时间比较,长度不同时返回 false。
## dever.crypto.tokenValue
取出随机 Secret;生成失败时继续传播错误。
## dever.crypto.hashValue
取出密码哈希;生成失败时继续传播错误。
## dever.crypto.verifyValue
取出密码是否匹配的结果;校验失败时继续传播错误。