首頁 >後端開發 >C++ >如何從標準輸入讀取密碼而不回顯密碼?

如何從標準輸入讀取密碼而不回顯密碼?

Susan Sarandon
Susan Sarandon原創
2024-12-22 16:24:10245瀏覽

How Can I Read Passwords from Standard Input Without Echoing Them?

從std::cin 讀取密碼而不回顯

從標準輸入讀取密碼而不回顯輸入字元的需求經常出現。為此,必須停用 std::cin 上的 echo。

Windows 和 UNIX 差異

停用 echo 的方法取決於作業系統。在 Windows 中,使用 GetConsoleMode 和 SetConsoleMode 函數,而在類別 UNIX 系統中,使用 tcgetattr 和 tcsetattr。

實作解決方案

提供的程式碼片段包括與作業系統無關的函數 SetStdinEcho,它允許切換 std::cin 的回顯。也提供了範例用法,示範如何在不回顯的情況下讀取密碼,然後在使用者按Enter 鍵時回顯密碼:

#include <iostream>
#include <string>

int main()
{
    SetStdinEcho(false);

    std::string password;
    std::cin >> password;

    SetStdinEcho(true);

    std::cout << password << std::endl;

    return 0;
}

此程式碼確保使用者的密碼在輸入時保持私密性並在成功輸入時顯示.

以上是如何從標準輸入讀取密碼而不回顯密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn