5部 関数リファレンス

crypt

crypt STRING, SALT



cryptは、パスワードの暗号化などに使われます。cryptは、第1引数STRINGで指定された文字列の先頭 8 文字と、第2引数SALTの 2 文字をもとに、ユニークな 13 文字の文字列を生成します。cryptで暗号化された文字列は、元に戻すことができません。

cryptの使い方

# 暗号化したい文字列($val)を受け取り、暗号化した文字列を返す関数
sub cipher {
	my ($val) = @_;
	my( $sec, $min, $hour, $day, $mon, $year, $weekday )
		= localtime( time );
	my( @token ) = ( '0'..'9', 'A'..'Z', 'a'..'z' );
	$salt = $token[(time | $$) % scalar(@token)];
	$salt .= $token[($sec + $min*60 + $hour*60*60) % scalar(@token)];
	return crypt( $val, $salt );
}

# パスワード($passwd1)と暗号化したパスワード($passwd2)を受け取り、
# 一致するかを判定する関数
sub decipher{
	my ($passwd1, $passwd2) = @_;
	# 暗号のチェック
	if ( crypt($passwd1, $passwd2) eq $passwd2 ) {
		return 1;
	} else {
		return 0;
	}
}

関連記事