linux - 现代 Unix/Linux 系统上的密码是否仍限制为 8 个字符?

标签 linux security unix passwords

多年前,Unix 密码被限制在 8 个字符以内,或者如果您将密码设置为超过 8 个字符,那么多出的密码不会有任何区别。

大多数现代 Unix/Linux 系统仍然是这种情况吗?

如果是这样,大约什么时候可以在大多数系统上使用更长的密码?

是否有一种简单的方法可以判断给定系统是否支持更长的密码,如果支持,有效的最大值(如果有)是多少?

我已经就此主题进行了一些网络搜索,但无法真正找到任何确定的信息;出现的大部分内容是从 2000 年代初期开始的,当时我认为 8 个字符的限制仍然很普遍(或者足够普遍以保证遵守该限制)。

最佳答案

尽管 original DES-based algorithm仅使用密码的前 8 个字符,Linux、Solaris 和其他较新的系统现在还支持其他密码哈希算法,例如 MD5没有这个限制。如果您的网络包含较旧的系统并且使用了 NIS,有时有必要继续使用旧算法。如果系统在您仅输入 >8 字符密码的前 8 个字符时让您登录,则可以看出仍在使用旧的基于 DES 的算法。

因为是哈希算法,MD5没有内在的限制。然而,各种接口(interface)通常会强加 some limit of at least 72 characters .

虽然最初加密的密码存储在一个世界可读的文件中(/etc/passwd),但现在它通常存储在一个单独的影子数据库中(例如/etc/shadow) 只能由 root 读取。因此,算法的强度不再像以前那么重要了。但是,如果 MD5 不合适,可以在某些系统上使用 Blowfish 或 SHA 代替。并且 Solaris 支持可插拔密码加密模块,允许您使用 any crazy scheme .当然,如果您使用的是 LDAP 或其他一些共享用户数据库,那么您将需要选择一种所有系统都支持的算法。

关于linux - 现代 Unix/Linux 系统上的密码是否仍限制为 8 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179649/

相关文章:

c++ - 如何从 getifaddr 读取子网掩码

c++ - 访问文件和打开文件有什么区别

iphone - 如何在 iOS 应用中安全地包含服务器凭据

security - 即使在客户端禁用 TLS 1.2 后,Java 1.8 客户端和以 FIPS 模式运行的 Java 1.7 TLS 1.1 服务器之间的 TLS 握手失败

Unix命令从当前目录中排序的文件名中获取前10名

windows - 从UNIX到Windows的FTP时如何检查远程服务器上目录的存在

linux - yum 是否保留未成功更新的缓存

security - 将 CCtray 与 Jenkins 一起使用,同时启用安全性(使用 HTTPS)

linux - sed在bash中使用变量取消注释多行

c - 如何通过脚本使用cscope来查找定义?