Sichere Passworteingabe mit std::cin
Beim Erfassen vertraulicher Benutzerinformationen, wie z. B. Passwörter, ist es wichtig, die eingegebenen Zeichen zu verhindern wird aus Datenschutzgründen auf dem Bildschirm angezeigt. Um dies mit std::cin zu erreichen, werden plattformspezifische Mechanismen eingesetzt.
Windows-Lösung:
Windows verwendet die SetConsoleMode-Funktion, um das Echoverhalten umzuschalten. Mit dem folgenden Codeausschnitt wird das Echo deaktiviert, indem das Flag ENABLE_ECHO_INPUT gelöscht wird:
#ifdef WIN32 #include <windows.h> ... HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); DWORD mode; GetConsoleMode(hStdin, &mode); mode &= ~ENABLE_ECHO_INPUT; SetConsoleMode(hStdin, mode); #endif
Unix (Linux/macOS) Lösung:
Unix-basierte Systeme basieren auf dem termios-Bibliothek und ihre tcsetattr-Funktion. Hier ist der Code zum Deaktivieren des Echos:
#else #include <termios.h> ... struct termios tty; tcgetattr(STDIN_FILENO, &tty); tty.c_lflag &= ~ECHO; tcsetattr(STDIN_FILENO, TCSANOW, &tty); #endif
Beispielverwendung:
Wenn die Echo-Deaktivierungsfunktion vorhanden ist, erfahren Sie hier, wie Sie std::cin verwenden, um Ein Passwort sicher lesen:
#include <iostream> #include <string> ... SetStdinEcho(false); std::string password; std::cin >> password; SetStdinEcho(true);
Durch den Einsatz dieser plattformspezifischen Methoden können Sie sicherstellen, dass Benutzerpasswörter nicht weitergegeben werden auf dem Bildschirm, wodurch sowohl Privatsphäre als auch Sicherheit in Ihrer Anwendung gewahrt bleiben.
Das obige ist der detaillierte Inhalt vonWie kann ich Passwörter mit std::cin sicher lesen, ohne dass ein Echo an die Konsole erfolgt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!