Die Lösung hierfür ist plattformspezifisch, leider.
Unter Linux oder BSD, können Sie die readpassphrase Funktion (es verwenden, ist auch getpass, obwohl es eine Größe des Puffers von nicht erlaubt und Puffer leidet durch den Anrufer zur Verfügung gestellt werden. Die Dokumentation des GNU Lib C (Link defekt? Versuchen this alternative Stattdessen bietet die Bibliothek auch eine hervorragende Anleitung, wie Sie dies selbst in Termen der unteren Ebene implementieren können, die Sie für andere UNIX-Implementierungen anstelle von getpass verwenden können.
Unter Windows können Sie SetConsoleMode verwenden, um das standardmäßige Echoverhalten zu deaktivieren (und somit Ihre eigenen Zeichen wie das Sternchen wiederzugeben). Sie können dann SetConsoleMode verwenden, um das Echo wiederherzustellen.
Ich sollte jedoch hinzufügen, dass dies eine sehr schlechte Form der Authentifizierung ist, da es noch mehr Passwörter beinhaltet, die den Fluch jedes Benutzers (und nicht besonders sicher) sind. Ein besserer Ansatz besteht darin, einen Webserver in Ihrer Anwendung zu starten und die URL auszugeben, auf der sich der Benutzer authentifizieren soll. Der Vorteil dieses Ansatzes besteht darin, dass diese URL, wenn der Benutzer zu dieser URL navigiert, die delegierte Anmeldung an Identitätsanbieter von Drittanbietern wie Google, Facebook, Twitter usw. unterstützen kann. Auch wenn Sie keine Identitätsanbieter von Drittanbietern unterstützen, Dieser Ansatz bringt weitere Vorteile mit sich; Wenn Sie über andere webbasierte Tools verfügen, reduziert dieser Ansatz die Anzahl der vom Benutzer authentifizierten Vorgänge (da das Befehlszeilentool und die webbasierten Tools dieselbe Browsersitzung verwenden) und ermöglicht Ihnen, den Anmeldefluss nur einmal zu implementieren Phishing-Risiken werden ebenfalls gemildert (Benutzer können den Host im Browser einfach sehen, wenn sie ihre Anmeldeinformationen eingeben, im Gegensatz zur Eingabe von Anmeldeinformationen in der Befehlszeile, wo es viel einfacher ist, eine Eingabeaufforderung zu spoofen und wenn Sie im letzten Schritt nur zu localhost umleiten Majorität der Logik auf einem Remote-Host Dieser Ansatz ermöglicht auch Updates des Autorisierungsflusses unabhängig von der Client-Kommandozeilen-Anwendung zu implementieren, was wichtige Sicherheitsvorteile hat.Ein Web-basierter Login wie dieser ist nicht immer der richtige Ansatz. Es lohnt sich auch, alternative Authentifizierungsmechanismen wie libpam zu untersuchen (unter libpam würden Sie die Funktion pam_authenticate verwenden, um die Verwendung zu authentifizieren r statt das Passwort direkt als Eingabe zu nehmen). Es lohnt sich, etwas Forschung zu betreiben, um den besten Mechanismus für Ihren speziellen Anwendungsfall zu bestimmen.
können Sie das, was Sie zuerst geschrieben haben, posten? – SSC
Duplizieren: http://stackoverflow.com/questions/17130979/how-to-haves-password-echoed-as-asterisks-using-getch –
Sie müssen Ihre Plattform angeben, da die Lösung plattformspezifisch –