Подтверждение пароля perl
Может ли кто-нибудь дать мне пример кода, позволяющего пользователю дважды ввести пароль, сравнить его и напечатать текст, если они верны или нет, например, когда мы создаем нового пользователя. Заранее спасибо...
3 ответа
Решение
$pwd = (getpwuid($<))[1];
system "stty -echo";
print "Password: ";
chomp($word = <STDIN>);
print "\n";
system "stty echo";
if (crypt($word, $pwd) ne $pwd) {
die "Sorry...\n";
} else {
print "ok\n";
}
Изменить в соответствии с вашими потребностями.
Склеп красная сельдь.
system "stty -echo";
print "Password: ";
chomp(my $password = <STDIN>);
print "\nPassword again: ";
chomp(my $check_again = <STDIN>);
print "\n";
system "stty echo";
if ($password ne $check_again) {
die "Sorry...\n";
} else {
print "ok\n";
}
Вот ответ, основанный на подсказке ephemient.. Мне не нужна первая строка, которую я удалил, и в случае, если n e предполагается, что eq, вероятно, означает, что равно:) похоже, это работает..
system "stty -echo";
print "Password: ";
chomp($word = <STDIN>);
print "Password again: ";
chomp($pwd = <STDIN>);
print "\n";
system "stty echo";
if (crypt($word, $pwd) eq $pwd) {
die "Sorry...\n";
} else {
print "ok\n";
}