Go fmt.Scanln 不会回显用户输入的字符。对于密码

Go fmt.Scanln that doesn't echo back characters typed by user. For password

如何在不回显用户键入的字符的情况下从命令行捕获用户输入。我想用它来捕获密码。喜欢 getpass.getpass 在 Python.

package main

import (
    "fmt"
)

func main() {
    var password string
    fmt.Scanln(&password)
}

标准库中没有这方面的辅助函数。

您必须创建自己的,或使用现有的 gopass(支持 windows、unix、bsd)。

使用 gopass:(示例取自他们的网站)

import "fmt"
import "github.com/howeyc/gopass"

func main() {
    fmt.Printf("Password: ")
    pass := gopass.GetPasswd() // Silent, for *'s use gopass.GetPasswdMasked()
    // Do something with pass
}