去fmt.Scanln不回显用户输入的字符。密码

时间:2015-02-02 08:49:09

标签: go

如何从命令行捕获用户输入,而不回显用户键入的字符。我想用它来捕获密码。与Python中的getpass.getpass类似。

package main

import (
    "fmt"
)

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

1 个答案:

答案 0 :(得分:3)

标准库中没有辅助功能。

您必须创建自己的,或使用现有的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
}