要实现从标准输入安全获取密码的功能,我们需要使用 golang.org/x/term 包。 首先,需要安装该包:
go get golang.org/x/term
安装完成后,我们就可以在代码中使用 term.ReadPassword 函数了。
以下是一个完整的示例代码,演示了如何获取用户名和密码,并避免密码回显:
package main import ( "bufio" "fmt" "os" "strings" "syscall" "golang.org/x/term" ) func main() { username, password, err := credentials() if err != nil { fmt.Println("Error:", err) return } 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 }
代码解释:
通过使用 golang.org/x/term 包中的 ReadPassword 函数,我们可以方便地实现从标准输入安全获取密码的功能。 该方法有效地防止了密码在控制台中回显,提高了安全性。 在实际应用中,还需要注意错误处理、安全存储和跨平台兼容性等问题。
以上就是从标准输入安全获取密码:Go 语言实现教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号