我坚持在Ruby中执行如此简单的程序,它会生成一个63个字符长的随机字符串,然后将其存储在文本文件中。 现在我的代码是:
def Password_Generator(length=63)
chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
password = ''
length.time { |i| password << chars[rand(chars.length)] }
aFile = File.new("Generated-Password.txt", "w+")
aFile.write(password)
aFile.close
end
答案 0 :(得分:4)
首先,Password_Generator
在Ruby中是一个错误的方法名,因为常量用于类名。 Ruby开发人员更喜欢使用snake_case而不是camelCase。对于你的实际问题(它是Ruby 1.9):
def generate_password(length=63)
chars = [*?a..?z, *?A..?Z, *0..9]
(1..length).map{ chars.sample }.join
end
我可能会用不同的方法对文件进行实际写入,关注点分离以及所有这些。
答案 1 :(得分:0)
require 'securerandom'
def generate_password(length=63)
# urlsafe_base64 uses lowercase, uppercase, 1-9 and _-.
# The latter are removed from the generated string.
SecureRandom.urlsafe_base64(length).delete('_-')[0, length]
end
File.open('pwd.txt', 'w'){|f| f.puts generate_password}