的$ key_length它说,它将从输入中得到,但我看到使用的256和更大的key_lengths的人,但是当我输入256作为key_length输出512个字符。这是故意的吗?我可以安全地使用64作为key_length,因此输出长度为128个字符?
1
A
回答
3
$ key_length是您希望从PBKDF2获得的输出字节数。 (请注意,如果key_length大于散列算法的输出字节数,则会重复该过程两次,这样散列速度可能会超出您的期望值,例如,SHA256会提供32个字节的输出,因此要求输入33个字节大约需要32倍的长度。)
您提到的长度加倍是因为代码将输出字节转换为十六进制(即每个字节2个字符),除非指定$ raw_output = true。测试向量包括指定$ raw_output = false,因为十六进制更容易处理并在线发布。根据您在应用程序中存储数据的方式,您可以决定是将结果存储为十六进制,base64还是仅存储原始二进制数据。
3
在键长度被定义为 的Password-Based Cryptography Specification Version 2.0 IETF规范“中导出密钥,一个正整数的八比特组预期长度,至多 (2^32 - 1)*为hLen”在这里hLen表示长度伪随机函数输出的八位组。有关pbkdf2的更多详细信息,请参阅How to store passwords securely with PBKDF2
相关问题
- 1. RijndaelManaged密钥长度是否与AES [密钥长度]相同?
- 2. PBKDF2 - 使用SHA512生成1024位密钥长度时会发生什么?
- 3. Visa RSA密钥长度
- 4. 计数密钥长度php
- 5. 找到密钥长度
- 6. InnoDB最大密钥长度
- 7. 在android中的PBKDF2安全密钥
- 8. PBKDF2推荐的密钥大小?
- 9. java.security AES加密密钥长度
- 10. iPhone 3DES加密密钥长度问题
- 11. 表示秘密密钥长度
- 12. TLS 1.2 - 密钥对大小和加密密钥长度
- 13. 如何使用java查找SSH RSA密钥的密钥长度
- 14. 指定的密钥太长;最大密钥长度为1000字节
- 15. UNIQUE INDEX - 指定的密钥太长;最大密钥长度是767字节
- 16. “指定的密钥太长;最大密钥长度为1000字节”
- 17. 指定的密钥太长;最大密钥长度是767字节
- 18. #1071 - 指定的密钥太长;最大密钥长度为1000字节
- 19. 指定的密钥太长;最大密钥长度为1000字节
- 20. 如何更改ECDSA的密钥长度?
- 21. 密钥长度不是128/192/256位
- 22. 无法确定DKIM密钥长度
- 23. hmac密钥和盐的长度
- 24. 提取公共密钥长度
- 25. RSA的最小密钥长度
- 26. 最小证书密钥长度和WinXP
- 27. 如何基于密钥的长度
- 28. Nodejs 6.10.2 crypto AES密钥长度无效
- 29. AES和密钥长度错误
- 30. 排序字典的密钥长度