多年前,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/