トップ > Perl Tips > 文字列の暗号化


 ■ 文字列の暗号化

文字列を暗号化するには、"crypt"というものを使います。
これは、与えられた2文字の「種」をもとに暗号化するもので、
暗号を解読することはできません。
ただし、照合することは可能です。

<暗号化>
$crypt = crypt($pwd,$salt);

$pwdを$saltという種によって暗号化した文字列が$cryptに戻ります。
$pwdは先頭の8バイトが有効になります。$saltは先頭の2バイトが有効になります。
文字列を切り出して渡す必要はなく、cryptに渡すと、無効になる部分は消えます。
$cryptの先頭の2文字は種の文字になります。
種が違えば$cryptの中身も変わります。

これを利用して、暗号化した文字列の照合をします。

<照合>
$cpwd = "aachno/jhftub";
$pwd = "abcdefgh";
if (crypt($pwd,$cpwd) eq $cpwd) {
print "OK\n";
}

(ここでの$cpwdは架空のものであるため、$pwdとは相違します。)
$cpwd(暗号化された文字列)を種として、$pwd(暗号化されていない文字列)を暗号化し、
$cpwdと比較します。
ここでは$cpwdの先頭の2文字が種になります。
種が同じであれば、暗号化された文字列も同じになります。

応用編:簡単なパスワード制限




トラックバック

このエントリーのトラックバックURL:
http://easycgi.xrea.jp/mt-tb.cgi/51