請求使用者輸入時,透過抑制密碼等敏感資訊的回顯來確保隱私至關重要。 Go 為此提供了一個安全可靠的解決方案,其相當於 getpasswd 功能。
為了從標準輸入控制台存取密碼條目而不將其顯示在螢幕上,Golang 內建的組合可以使用套件和外部程式庫。以下是如何實現此目的的詳細指南:
安裝術語包:
首先安裝術語包,它提供了功能用於管理終端輸入和輸出:
go get golang.org/x/term
實現憑證檢索:
以下代碼片段演示了收集用戶名和密碼的強大方法安全地:
package main import ( "bufio" "fmt" "os" "strings" "syscall" "golang.org/x/term" ) func main() { username, password, _ := credentials() fmt.Printf("Username: %s, Password: %s\n", username, password) } func credentials() (string, string, error) { reader := bufio.NewReader(os.Stdin) fmt.Print("Enter Username: ") username, err := reader.ReadString('\n') if err != nil { return "", "", err } fmt.Print("Enter Password: ") bytePassword, err := term.ReadPassword(int(syscall.Stdin)) if err != nil { return "", "", err } password := string(bytePassword) return strings.TrimSpace(username), strings.TrimSpace(password), nil }
用法:
要使用此功能,只需呼叫憑證()函數,該函數會傳回使用者名稱和密碼為字串。例如:
username, password, err := credentials() if err != nil { // Handle error } fmt.Printf("Username: %s", username) fmt.Printf("Password: %s", password)
透過實施這些步驟,Go 開發者可以輕鬆取得使用者密碼,而不會在輸入過程中洩漏密碼,從而增強應用程式的安全性和隱私性。
以上是如何在 Go 中安全地檢索使用者密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!