跳到正文
编写
登录

口令与密钥派生:修订间差异

更多
迷雾样式迁移​(留言 | 贡献)
重排科普目录与分类页面;保留工具索引和学习资源
 
迷雾样式迁移​(留言 | 贡献)
重写科普正文:定义、结构、原理与资料表
 
第1行: 第1行:
口令是人可记忆的秘密;加密算法通常要求固定长度且质量足够的密钥。密钥派生函数可结合口令、盐值和参数生成密钥材料,而不是把口令文字直接当成密钥。<ref>[https://csrc.nist.gov/pubs/sp/800/132/final NIST SP 800-132《基于口令的密钥派生》,英文,第 5 节]</ref>
口令是由用户记忆或输入的秘密文本;密钥派生函数将口令和其他参数转换为固定长度的密钥材料。口令验证、数据加密与密钥派生是相关但不同的用途。口令本身通常不直接具备随机密钥的熵。


== PBKDF2 的输入 ==
== PBKDF2 的组成 ==
PBKDF2 的核心输入包括口令 <code>P</code>、盐值 <code>S</code>、迭代次数 <code>c</code> 和目标长度 <code>dkLen</code>,另有伪随机函数的选择。口令相同但盐值不同,派生输出通常不同;缺失盐值、迭代次数或函数名,就不能可靠地复现已有结果。<ref>[https://mirrors.nju.edu.cn/rfc/rfc8018.html IETF RFC 8018《PKCS #5 v2.1》,南京大学开源镜像,英文,第 5.2 节]</ref>
PBKDF2 以口令、盐值、迭代次数、伪随机函数和输出长度为参数。盐值使相同口令在不同记录中产生不同输出;迭代次数增加每次猜测的计算成本。盐值不必保密,但应随验证记录保存。参数变化会改变派生结果。


== 与哈希、加密的区别 ==
{| class="wikitable"
派生函数不是“破解口令”的操作。加密需要算法、模式、密钥及可能的初始向量;密码验证可能保存的是口令处理后的值而非原口令。看到一段十六进制或 Base64 字符串,也不能仅凭外观判断它是密钥、散列还是密文。相关概念见 [[AES]]、[[MD5]] 与 [[SHA家族]]。
! 参数 !! 作用
|-
| 口令 || 提供秘密输入。
|-
| 盐值 || 区分不同记录或用途。
|-
| 迭代次数 || 规定重复计算次数。
|-
| 输出长度 || 规定派生材料的字节数。
|}
普通快速散列函数与专用口令处理方法不能互换。[[MD5]] 或 SHA 摘要直接作用于口令时,缺少专门口令派生方案的成本参数;加密密钥和口令验证值也不应混作相同用途。


== 参考资料 ==
== 参考资料 ==
<references />
* [https://csrc.nist.gov/pubs/sp/800/132/final NIST SP 800-132《基于口令的密钥派生》,英文,第 5 节]
* [https://mirrors.nju.edu.cn/rfc/rfc8018.html IETF RFC 8018《PKCS #5 v2.1》,南京大学开源镜像,英文,第 5.2 节]


[[工具和科普/文字与密码|返回文字与密码]]
[[工具和科普/文字与密码|返回文字与密码]]

2026年10月14日 (三) 10:14的最新版本

口令是由用户记忆或输入的秘密文本;密钥派生函数将口令和其他参数转换为固定长度的密钥材料。口令验证、数据加密与密钥派生是相关但不同的用途。口令本身通常不直接具备随机密钥的熵。

PBKDF2 的组成

PBKDF2 以口令、盐值、迭代次数、伪随机函数和输出长度为参数。盐值使相同口令在不同记录中产生不同输出;迭代次数增加每次猜测的计算成本。盐值不必保密,但应随验证记录保存。参数变化会改变派生结果。

参数 作用
口令 提供秘密输入。
盐值 区分不同记录或用途。
迭代次数 规定重复计算次数。
输出长度 规定派生材料的字节数。

普通快速散列函数与专用口令处理方法不能互换。MD5 或 SHA 摘要直接作用于口令时,缺少专门口令派生方案的成本参数;加密密钥和口令验证值也不应混作相同用途。

参考资料

返回文字与密码

迷雾 Wiki
搜索迷雾 Wiki
阅读设置