HKDF 提取与扩展
使用 HKDF 派生密钥,或分别执行提取与扩展;明确设置哈希、盐值、上下文字节和输出长度。
提取、扩展或两者组合
HKDF 将输入密钥材料与应用所需输出密钥分开处理。提取返回固定长度 PRK;扩展接收至少与哈希输出等长的 PRK、可选上下文和输出长度。组合模式执行两步;示例复现 RFC 5869 测试用例 1。
UTF-8、十六进制、Base64、Base64url 输入都具有明确字节含义,支持空盐值与空 info。可选随机盐会写入 JSON 记录,但记录不包含 IKM 或输入 PRK;派生密钥本身仍是秘密材料。
长度、上下文和适用用途
输出可为 0 至 255×HashLen 字节:SHA-256 最多 8160、SHA-384 最多 12240、SHA-512 最多 16320 字节。提取固定输出 HashLen 字节。IKM 和 info 各限 64 KiB,盐值限 1 KiB,单独扩展的 PRK 限 4 KiB。
HKDF 用于密钥派生和上下文区分,不用于提高密码猜测成本,也不能凭空增加弱输入缺少的熵。协议应同时保留哈希、盐值、info、阶段和长度;原始输出不包含这些信息,JSON 记录则明确列出。
参考
常见问题
为什么改动 info 会改变输出?
info 用于区分不同用途的密钥。应采用协议明确的值,并在再次派生同一密钥时复现完全相同的字节。
空盐值是否表示跳过提取?
不表示。组合模式和提取模式仍会执行提取,只有扩展模式直接使用提供的 PRK。
输入会上传或保存吗?
处理在浏览器中完成。工具不会将密钥、密码或内容放入 URL、本地存储或发送至处理 API。清除会移除可见输入与输出,但不保证安全擦除由浏览器管理的内存。