RubyでCGIスクリプトを作る下準備・cryptを使う
掲示板スクリプト等で使いそうなパスワード人証を作っておく。
saltはランダムで選ぶ仕様。
一般的なDESとMD5に対応。
参照)
Rubyリファレンスマニュアル -String- http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=String
#!/usr/local/bin/ruby # # Cryptテスト # def encrypt(pwd) salt = [rand(64), rand(64)].pack("C*").tr("\x00-\x3f", "A-Za-z0-9./") return pwd.crypt(salt) end def checkpwd(chk, pwd) if pwd =~ /^\$[0-9]\$([A-Za-z0-9\.\/]+)\$([A-Za-z0-9\.\/]+)$/ # MD5 salt = $1 else pwd =~ /^([A-Za-z0-9\.\/]{2})/ # MD5以外は一般的なDESとしてみる salt = $1 end if pwd == chk.crypt(salt) return true else return false end end pass = "hoge" pass = encrypt(pass) print pass + "\n" if checkpwd("hoge", pass) print "hoge\n" # 実行される end if checkpwd("hogehoge", pass) print "hogehoge\n" # 実行されない end