请求用户输入时,通过抑制密码等敏感信息的回显来确保隐私至关重要。 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中文网其他相关文章!