几年前,Unix密码限制为8个字符,或者如果密码长度超过8个字符,则多余的字符不会有任何区别。
在大多数现代Unix / Linux系统上仍然如此吗?
如果是这样,在大多数系统上什么时候可以使用更长的密码了?
有没有一种简单的方法可以判断给定系统是否支持更长的密码,如果可以,那么有效的最大值(如果有)是多少?
我已经在这个主题上进行了一些网络搜索,但实际上找不到任何确定的内容。出现的大部分内容是从2000年代初开始的,当时我认为8个字符的限制仍然很普遍(或者足以保证遵守该限制)。
在glibc2(任何现代Linux发行版)中,密码加密功能可以使用MD5 / SHA-xxx(由魔术盐前缀引起),然后将其视为所有输入字符的有效内容(请参阅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
其他* ix变体也支持类似的功能-例如crypt(3),至少从Solaris 10开始。但是,这是一个非标准扩展-POSIX没有定义它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句