Lua中的密码输入函数

如何在 Lua 中进行 CLI 密码掩码?例如,当我输入密码时,它会变成星号或根本不显示?我需要一个平台无关的解决方案,因为我的脚本将用于 Java 应用程序。

原文链接 https://stackoverflow.com/questions/8748228

点赞
stackoverflow用户513763
stackoverflow用户513763

在纯 Lua 中,答案很简单:你不能。

由于 Lua 是用 ANSI C 写的,如果不按回车键,就无法从命令行中获取字符。但是你可以利用类似 curses.lua 的库来绑定,它包含在 luaposix 中。

或者如果你可以假设你有一个 ANSI VT,你可以诉诸这样的 hack:

io.write("\027[s") -- 保存光标位置
l=io.read()
io.write('\027[u',('*'):rep(#l),"\n") -- 回到我们的位置,并填充正确数量的星号
print("pst,我拿到了", l, "但不要告诉任何人!")

有关 ANSI 终端控制的更多信息

但是如果它将用于 Java 应用程序,为什么不使用 Java 提供密码提示呢?我猜他们对 cli 的支持和控制会更好,而且这是跨平台的...

2012-01-05 21:57:18