越水です。

From: Ayanosuke <aya / big.or.jp>
Subject: [ruby-list:20349] パスワードの crypt とチェック
Date: Mon, 24 Jan 2000 04:29:50 +0900

>  srandのseedは適当に考えたものを与えているのですが、より最適
> なものがあったら教えてください。

確か、『プロセスIDが良い』といったことを聞いた覚えがあるのですが、不確
かです。

>  Webのリファレンスには、2文字以上の任意の文字列とあったので、
> ほとんどの文字を入れてあるのですが、[./A-Za-z0-9]だけであると

GNU C Libraryのinfoには:

For the MD5-based algorithm, the SALT should consist of the string
`$1$', followed by up to 8 characters, terminated by either another
`$' or the end of the string.  The result of `crypt' will be the
SALT, followed by a `$' if the salt didn't end with one, followed by
22 characters from the alphabet `./0-9A-Za-z', up to 34 characters
total.  Every character in the KEY is significant.

For the DES-based algorithm, the SALT should consist of two
characters from the alphabet `./0-9A-Za-z', and the result of
`crypt' will be those two characters followed by 11 more from the
same alphabet, 13 in total.  Only the first 8 characters in the KEY
are significant.  If the `crypt' add-on is not installed, trying to
use the DES-based algorithm will return an empty string and set
`errno' to `EOPNOTSUPP'.

とあります。DESだったら`./0-9A-Za-z'から2文字、MD5だったら最高で8文
字で、文字種には特に制限はないように読めます。

glibc以外の実装は分かりません。

越水
greentea / fa2.so-net.ne.jp