首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在命令行上使用Go,如何隐藏来自用户终端的命令行输入?

在命令行上使用Go,如何隐藏来自用户终端的命令行输入?
EN

Stack Overflow用户
提问于 2014-10-28 03:28:03
回答 2查看 564关注 0票数 4

我正在编写一个简单的命令行实用程序,要求用户输入密码。我决定使用bufio来读取用户输入,但不知道如何在用户终端上隐藏密码。这个功能是否在Go的标准库中,或者我是否需要使用操作系统级别的功能来完成这项工作?(这可能只会在Linux上运行,但最好也能在Windows上运行。)

EN

回答 2

Stack Overflow用户

发布于 2014-10-28 04:45:41

你想要的是关闭回声。这通常通过配置终端驱动程序termios来实现。最好的办法是阅读Linux的驱动程序文档(termios(3))。就我而言,在读取密码之前,您需要关闭ECHO。读取密码后,再次打开ECHO。不要使用bufio,因为你不想让缓冲干扰低级终端的东西。您可以从syscall包中访问所需的系统调用。

termios在所有类UNIX平台上都可用。这包括Linux、BSD、OS X和Solaris,但不包括Microsoft Windows。

票数 3
EN

Stack Overflow用户

发布于 2014-10-29 00:28:38

您可以使用使用键盘输入而不使用输出的termbox。到目前为止,我可以说,这在Windows上可以工作,但我不确定这是否可以在Linux上工作(我想是的)。安装后,有一个_demos文件夹,在此文件夹内有一个名为keyboard.go的示例。一旦启动,它将显示一个键盘,并突出显示按下的键。然而,它确实可以在我的电脑上工作,但当我按空格键/回车键/功能键或CTRL-(任意)键时,程序挂起。可能是代码中的错误或者Termbox内部的错误。我还没弄明白。此外,您还需要使用CGO来使用termbox来运行。

截图:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26595356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档