如何在红宝石中隐藏输出密码?

时间:2014-04-15 05:35:23

标签: ruby passwords puts

我想在ruby代码中输入sharp而不是密码

puts "        found password: #{pass.tr('?','#')}"

我需要输出与密码中的字符一样多的尖锐“#”字符。

如何正确做到?

1 个答案:

答案 0 :(得分:1)

方法.tr旨在交换特定字符,不能进行外卡匹配。即使您将其扩展为涵盖许多字符,也可能会遗漏或遗忘系统中密码允许的特殊字符。

您所拥有的一个简单变体是使用.gsub代替:

pass.gsub(/./,'#')

这使用正则表达式来查找要交换的字符组。简单的Regexp /./匹配任何单个字符。 Ruby core documentation on regular expressions包含一个简短的介绍,如果您之前没有使用过它们。