多年前,Unix 密码的长度限制为 8 个字符,或者如果密码长度超过 8 个字符,那么多余的字符也不会产生任何影响。
大多数现代 Unix/Linux 系统上仍然是这种情况吗?
如果是这样,大约什么时候在大多数系统上可以使用更长的密码?
有没有一种简单的方法可以判断给定系统是否支持更长的密码,如果支持,有效的最大值(如果有)是多少?
我在网上搜索了一些关于这个主题的内容,但找不到任何明确的信息;大部分内容是从 2000 年代初开始的,当时我认为 8 个字符的限制仍然很常见(或者足够常见到足以保证遵守该限制)。
虽然原始的基于 DES 的算法 http://en.wikipedia.org/wiki/Crypt_%28C%29#Traditional_DES-based_scheme仅使用密码的前 8 个字符,Linux、Solaris 和其他较新的系统现在还支持其他密码哈希算法,例如MD5 http://en.wikipedia.org/wiki/Crypt_%28C%29#MD5-based_scheme没有这个限制。有时,如果您的网络包含旧系统并且使用 NIS,则有必要继续使用旧算法。如果系统在您仅输入超过 8 个字符的密码的前 8 个字符时让您登录,则可以看出仍在使用基于 DES 的旧算法。
由于MD5是一种哈希算法,因此没有内在的限制。然而,各种接口通常会强加至少 72 个字符的限制 http://www.ratliff.net/blog/2007/09/20/password-length.
尽管最初加密的密码存储在一个世界可读的文件中(/etc/passwd
),现在通常存储在单独的影子数据库中(例如/etc/shadow
) 只能由 root 读取。因此,算法的强度不再像以前那么重要。但是,如果 MD5 不够用,在某些系统上可以使用 Blowfish 或 SHA 代替。并且Solaris支持可插拔的密码加密模块,允许您使用任何疯狂的计划 http://www.crypticide.com/dropsafe/article/1389。当然,如果您使用 LDAP 或其他共享用户数据库,那么您将需要选择所有系统都支持的算法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)