Ruby 用随机数填充插入的密码*

Ruby 用随机数填充插入的密码*,ruby,Ruby,我有一个ruby脚本,它使用highline/import请求密码: ask(“输入密码:”){| q | q.echo=“*”} 我想在用户完成密码输入后,向输出中添加一个随机数*的值。这是因为输出被捕获,我不想透露密码的长度。作为一项要求,我不能禁用echo。您可以将'*'乘以一个随机值。导入SecureRandom: 需要“securerandom” 然后在那个街区: q.echo='*'*SecureRandom.rand(5..15) 为什么您不希望总是返回相同数量的*s?您能举例

我有一个ruby脚本,它使用highline/import请求密码:

ask(“输入密码:”){| q | q.echo=“*”}

我想在用户完成密码输入后,向输出中添加一个随机数*的值。这是因为输出被捕获,我不想透露密码的长度。作为一项要求,我不能禁用echo。

您可以将
'*'
乘以一个随机值。导入SecureRandom:

需要“securerandom”
然后在那个街区:

q.echo='*'*SecureRandom.rand(5..15)

为什么您不希望总是返回相同数量的
*
s?您能举例说明一些可能的输出吗?当用户键入*时,每个字符都会输出一个*。这个ruby脚本的输出是存储的,我想,一旦用户完成插入输入(回车)以填充一个随机数*这样日志将包含一个*字符串,该字符串不会显示密码长度。如果您不能禁用echo,那么星号将变得毫无意义<代码>猎人2******。这不是我的要求。我无法禁用回音。我只想在用户按enter键时添加随机数目的星号。这将在用户键入时添加*。我想在用户按回车键后添加一个随机数目的星号。你说“作为一项要求,我不能禁用回音。”这意味着你实际上不能这样做。每个密码接收系统都会故意抑制回声。您可以尝试打印“\b*”来掩盖它,但这是一件愚蠢的差事。@tadman我认为OP希望在输入密码时有定期的
*
反馈(如问题所示)。但是一旦用户点击return,就应该在现有的
*
@Stefan Sure中添加一个随机数量的
*
,但不抑制没有任何作用的echo。您仍然可以看到文本。我认为“我无法禁用回音”意味着
q.echo=false
不是一个会导致根本没有回音的选项。OP必须保持
q.echo='*'
,这会将输入字符转换为
*