几年前,以前的情况是Unix密码限制在8个字符,或者如果您的密码长于8个字符,额外的将不会有任何区别。
大多数现代Unix / Linux系统还是这样吗?
如果是这样,大多数系统在更长的密码变得可能的时候呢?
有没有一个简单的方法来判断一个给定的系统是否支持更长的密码,如果是这样,有效的最大值(如果有的话)会是什么?
我已经做了一些关于这个话题的网页搜索,找不到任何明确的东西;其中大部分是从二十世纪二十年代初,当时我认为8个字符的极限仍然很常见(或普遍足以保证坚持这个限制)。
在glibc2(任何现代的Linux发行版)中,密码加密功能可以使用MD5(由魔术盐前缀引发),然后将其视为所有输入字符(见
man 3 crypt)。对于您的系统的简单测试,您可以尝试如下:
#!/bin/perl -w my $oldsalt = '@@'; my $md5salt = '$1$@@$'; print crypt("12345678",$oldsalt) . "\n"; print crypt("123456789",$oldsalt) . "\n"; print crypt("12345678",$md5salt) . "\n"; print crypt("12345678extend-this-as-long-as-you-like-0",$md5salt) . "\n"; print crypt("12345678extend-this-as-long-as-you-like-1",$md5salt) . "\n";
(在我的系统上给出)
@@nDzfhV1wWVg @@nDzfhV1wWVg $1$@@$PrkF53HP.ZP4NXNyBr/kF. $1$@@$4fnlt5pOxTblqQm3M1HK10 $1$@@$D3J3hluAY8pf2.AssyXzn0
但是,这是一个非标准的扩展 – POSIX does not define it。