64 lines
1.6 KiB
Markdown
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
|
|
|
|
取出密码是否匹配的结果;校验失败时继续传播错误。
|