首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么GNU libc的“`crypt`”的盐字母表限制在./0-9A-Za-z?

为什么GNU libc的“`crypt`”的盐字母表限制在./0-9A-Za-z?
EN

Security用户
提问于 2022-07-03 20:15:13
回答 1查看 77关注 0票数 0

根据医生的说法:

若要散列新的密码以存储,请将salt设置为由随机选择的字符组成的字符串.

在任何情况下,随机字符都应该从字母表./0-9A-Za-z中选择。

参考文献

为什么会这样呢?

另外,为什么随机字符序列的长度也是有限的呢?

代码语言:javascript
运行
复制
One-way function    Prefix  Random sequence
SHA-2-512           ‘$6$’   16 characters

参考文献

EN

回答 1

Security用户

回答已采纳

发布于 2022-07-03 21:18:08

salt仅限于这些字符,因为这些字符是DES实现所支持的原始字符。该算法不接受超过8个字符的密码,并且不再被认为是安全的,但这就是最初选择字符的原因。它们本质上是Base64编码的变体。

我不能具体说明为什么选择这样大小的salt,但它可能涉及到原始实现中的一个固定大小的缓冲区。如果您使用的是最近的Debian系统,那么您将使用libcrypt而不是glibc实现,该实现支持更多的算法,所有这些算法都支持更大的盐类。例如,bcrypt支持128位盐分,salt和yescrypt最多支持512位盐。

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

https://security.stackexchange.com/questions/263130

复制
相关文章

相似问题

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