kann jemand mir einen Beispielcode geben, damit ein Benutzer ein Kennwort zweimal eingibt und sie vergleicht und einen Text druckt, wenn sie richtig sind oder nicht, wie wenn wir einen neuen Benutzer verursachen. Vielen Dank im Voraus ...perl password confirmation
Antwort
Von perldoc -f crypt,
$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";
}
Ändern Sie bitte Ihre Bedürfnisse anzupassen.
ja das ist gut und ich denke, ich habe schon gesehen .. ich werde versuchen, zu ändern, ich bin ein Anfänger..danke. – user403295
das ist nicht gut, das ist Code, um ein Passwort zu einem zuvor verschlüsselten Passwort zu überprüfen, nicht zwei Einträge auf Gleichheit zu überprüfen – ysth
Ja, aber es zeigt, wie ein Passwort auf der Konsole zu lesen, und ich dachte, ich würde nur kopieren das ganze Snippet mit Attribution. Scheint genug gewesen zu sein, um OP ins Rollen zu bringen. – ephemient
hier ist die Antwort auf ephemient des Hinweises basiert .. ich nicht die erste Zeile müssen, dass ich entfernt und in falls Fall ne Gl nehme an, bedeutet dies wahrscheinlich gleich:) es sieht es funktioniert ..
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";
}
Dies wird * nie * den Fehler "Sorry ..." geben. Verwenden Sie crypt() nicht dafür. – ysth
Krypta ist ein roter Hering.
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";
}
Das ist fast * genau * was OP gemacht hat. – ephemient
@ephemient: außer dass es funktioniert ... – ysth
danke für die Antwort. Ich habe die Probe des Ephemiers nach Bedarf modifiziert. Die Antwort ist unten. Und es ist sehr ähnlich zu dir, außer wenn es der Fall ist. Wenn Sie "ne" zwischen $ password und $ check_again verwenden, wird der Abschnitt "Sorry" angezeigt, obwohl die Passwörter identisch sind. Also habe ich 'eq' anstelle von 'ne' benutzt. Und es sieht so aus, als ob es funktioniert. Ich werde deine auch versuchen .. Ich habe es noch nicht ausgeführt. Dann werde ich auch überprüfen Sie Ihre Antwort .. Nochmals vielen Dank..Regards .. – user403295
Welche Module verwenden Sie? – Hanmyo
Wenn Ihr Code das Passwort speichern muss, damit vom Benutzer eingegebene Passwörter später bestätigt werden können, verwenden Sie bitte [eine kryptografische Hash-Funktion] (http://en.wikipedia.org/wiki/Cryptographic_hash_function), wie zB [SHA- 2] (http://en.wikipedia.org/wiki/SHA-2). –
@hanmyo - Ich bin ein Anfänger .. Dies ist für den Workshop eines meiner Themen erforderlich. Ich weiß Codierung in Java und PHP zu tun, aber weiß nicht, wie man Module tatsächlich verwendet. – user403295