ホームページ >バックエンド開発 >C++ >コンソールにエコーせずに std::cin を使用してパスワードを安全に読み取るにはどうすればよいですか?

コンソールにエコーせずに std::cin を使用してパスワードを安全に読み取るにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-23 22:34:10909ブラウズ

How Can I Securely Read Passwords Using std::cin Without Echoing to the Console?

std::cin を使用した安全なパスワード入力

パスワードなどの機密性の高いユーザー情報を取得する場合、入力された文字が不正に入力されないようにすることが重要です。プライバシー上の懸念から、画面にエコー表示されます。これを std::cin で実現するために、プラットフォーム固有のメカニズムが採用されています。

Windows 解決策:

Windows は SetConsoleMode 関数を利用してエコー動作を切り替えます。以下のコード スニペットは、ENABLE_ECHO_INPUT フラグをクリアしてエコーを無効に設定します。

Unix (Linux/macOS) 解決策:

Unix ベースのシステムは、 termios ライブラリとその tcsetattr 関数。エコーをオフにするコードは次のとおりです:

使用例:

エコーを無効にする関数を配置した状態で、std::cin を使用して次のことを行う方法を示します。パスワードを安全に読み取る:

これらのプラットフォーム固有の方法を採用することで、次のことを確実に行うことができます。ユーザーのパスワードは画面にエコー表示されないため、アプリケーションのプライバシーとセキュリティの両方が維持されます。

以上がコンソールにエコーせずに std::cin を使用してパスワードを安全に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。