隐藏Ruby中的用户输入

时间:2013-08-07 20:04:36

标签: ruby obfuscation

我正在寻找用户的数据,但是,我不希望输入直接显示在屏幕上。相反,我想把它留空或更好,混淆字符以输入星号。

例如:

print "Password: "
pass = STDIN.gets.chomp

1 个答案:

答案 0 :(得分:6)

假设您至少使用了ruby 1.9,则可以使用noecho上的IO方法:http://www.ruby-doc.org/stdlib-2.0/libdoc/io/console/rdoc/IO.html#method-i-noecho

所以:

require 'io/console'
print "Password: "
STDIN.noecho(&:gets).chomp

这不会混淆字符,但只会将输入终端留空。