
要实现从标准输入安全获取密码的功能,我们需要使用 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号