首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pbkdf2密钥长度

pbkdf2密钥长度
EN

Stack Overflow用户
提问于 2012-10-07 10:56:51
回答 2查看 2.5K关注 0票数 3

PBKDF2中的$key_length是什么

它说它将从输入派生,但是我看到人们使用256或更大的key_lengths,但是当我输入256作为key_length时,输出是512个字符。这是故意的吗?我是否可以安全地使用64作为key_length,以便输出长度为128个字符?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 21:51:40

$key_length是您希望从PBKDF2输出的字节数。(请注意,如果key_length大于散列算法的输出字节数,该过程将重复两次,从而减慢散列的速度,这可能超出您的预期。例如,SHA256提供32字节的输出,因此请求33字节的时间大约是请求32字节的时间的两倍。)

您提到的长度加倍是因为代码将输出字节转换为十六进制(即每1字节2个字符),除非您指定$raw_output = true。包含的测试向量指定$raw_output = false,因为十六进制更容易处理和在线发布。根据您在应用程序中存储数据的方式,您可以决定是将结果存储为十六进制、base64,还是只存储原始二进制数据。

票数 3
EN

Stack Overflow用户

发布于 2017-09-25 20:56:26

Password-Based Cryptography Specification Version 2.0的IETF规范中,密钥长度被定义为“以导出密钥的八位字节为单位的预期长度,一个正整数,至多(2^32 - 1) * hLen”,其中hLen表示伪随机函数输出的以八位字节为单位的长度。有关pbkdf2的更多详细信息,请访问How to store passwords securely with PBKDF2

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12765749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档