館林と申します。

 パスワードのcryptとチェックのクラスを作ってみたいのですが、
いくつかわからないことがあります。

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

 それと、cryptに与えるためのsaltに許されている文字についてで
す。
 Webのリファレンスには、2文字以上の任意の文字列とあったので、
ほとんどの文字を入れてあるのですが、[./A-Za-z0-9]だけであると
いうことを、他のMLで聞いたことがあります。
 本当のところはどうなのでしょうか?

 よろしくお願いいたします。

class Crypt_pswd < String
	def mk_passwd
		return self.crypt(create_salt)
	end

	def create_salt
		seed = (Time.now.tv_sec<<$$).to_s[-12,9].to_i
		srand(seed)
		base = ".,!\"#$&'()=/-+%*|_?^\\:;@`[]{}()<>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
		n = base.length
		# for non-DES , long salt
		salt = base[rand(n-1),1] + base[rand(n-1),1] + base[rand(n-1),1] + base[rand(n-1),1] + 
		       base[rand(n-1),1] + base[rand(n-1),1] + base[rand(n-1),1] + base[rand(n-1),1]
		return salt
	end

	def check_passwd(hash_ps)
		hash_ps == self.crypt(hash_ps)
	end
end

#----
#パスワードのハッシュを取得
ps = Crypt_pswd.new("password")
cypted_ps = ps.mk_passwd

#----
#パスワードのチェック
ps = Crypt_pswd.new("password")
ps.check_passwd(cypted_ps)



========================================================
   綾乃介@IBARAKI Univ.
      E-mail: aya / big.or.jp
      URL:http://www5.big.or.jp/~aya/
========================================================
茨城県日立市の総合情報サイト
    メディアネットワーク マンボウ WebSite
                http://manbow.cgi-space.to/
========================================================