【问题标题】:PHP command-line: How do I read in a typed-in password without displaying the typed chars on the console?PHP 命令行:如何读取输入的密码而不在控制台上显示输入的字符?
【发布时间】:2010-12-09 15:01:00
【问题描述】:

我想在命令行脚本中读取密码,但不希望输入的密码出现在屏幕上。这似乎是命令行应用程序中相当常见的功能,但我的 Google-fu 无法识别它是如何工作的。它是操作系统的功能吗?您是否必须以某种方式拦截输入流,以免它写入控制台?我想在 php 命令行脚本中使用它,但我无法使用我无法理解的内容。

一些独立搜索产生了this 链接,在底部他们提到mysqladmin 不使用STDIN 读取密码。那么他们是如何做到的,我该如何实现这个功能呢?

【问题讨论】:

  • 要回答关于mysqladmin的问题,您可以随时打开自己的TTY,允许输入。

标签: php command-line passwords


【解决方案1】:

回答以防有人发现此谷歌搜索。

这在纯 PHP 中是不可能的。解决方案是执行 Linux 的小 shell 脚本或 Windows 的小程序。

对于 zsh shell,shell 脚本如下所示:

/usr/bin/env zsh -c 'stty -echo; read -r mypassword; stty echo; echo $mypassword'

完整的工作实现由 Composer 的 Seldaek 编写,您可以在 https://github.com/Seldaek/cli-prompt 找到它

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 2020-03-19
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多