1.6 KiB
1.6 KiB
密码与摘要
密码哈希和校验会阻塞,异步流程用 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
取出密码是否匹配的结果;校验失败时继续传播错误。