Perl5 リファレンス



crypt

【文法】

crypt PLAINTEXT,SALT


【説明】

Cライブラリのcrypt(3)関数と同様に、文字列を暗号化します。問題の有るパスワードを
パスワードファイルからチェックするには、非常に便利だと分かるでしょう。白い帽子を
かぶっている人※だけがこれをすべきです。
※白い帽子をかぶっている人(the guys wearing white hats)
WHITE-HAT HACKERS(善玉ハッカー)のこと。

オムレツを作ろうと卵を割った時のように、"crypt"関数は、一方向関数です。つまり、
暗号化したものを復号することはできません。結果的に、この関数は、暗号解読には利用
できません。

すでにある暗号化された文字列を確かめるときには、saltで暗号化されたテキストを使わ
なければいけません("crypt($plain, $crypted) eq $crypted" のように)。新しいsalt
を指定するときは、文字セット"[./0-9A-Za-z]"の中からランダムな2つの文字列を選択
して下さい。

ここでは、このプログラムを動す人が、自分のパスワードを知っていることを確かめる例
を紹介します。


                   $pwd = (getpwuid($<))[1];

                   system "stty -echo";
                   print "Password: ";
                   chomp($word = );
                   print "\n";
                   system "stty echo";

                   if (crypt($word, $pwd) ne $pwd) {
                       die "Sorry...\n";
                   } else {
                       print "ok\n";
                   }

もちろん、あなた自身のパスワードを尋ねてくる人にそれを入力させることは、賢くあり
ませんが。



Perl5リファレンスに戻る