2012-01-05 63 views
2

如何在Lua中設置CLI密碼屏蔽?例如。當我寫密碼它變成星號或根本沒有顯示?我需要與平臺無關的解決方案,因爲我的腳本將用於Java應用程序。Lua中的密碼輸入功能

+0

可能重複[在lua中用星號隱藏密碼](http://stackoverflow.com/questions/5787796/hide-password- with-asterisk-in-lua) – lhf 2012-01-06 01:39:50

+0

你在JVM中運行Lua嗎? – ponzao 2012-01-06 13:16:20

回答

2

在普通的Lua中,答案很簡單:你不能。

由於Lua是用ANSI C編寫的,所以無法從命令行獲取字符而無需按Enter鍵。但是,您可以使用庫的綁定,例如luaposix附帶的curses.lua。

或者,如果你可以假設你有一個ANSI VT,您可以訴諸這樣一個黑客:

io.write("\027[s") -- save cursor position 
l=io.read() 
io.write('\027[u',('*'):rep(#l),"\n") -- rewind to where we were, and fill with the correct amount of stars 
print("pst, I got", l, "but don't tell anyone!") 

More info about ANSI terminal control

但如果它會被用於Java應用程序,爲什麼不在密碼提示中使用Java。我猜他們的支持和控制cli會更好,跨平臺...