8

ruby を使用して特殊文字を含むランダムなパスワードを生成しようとしています。そのようなパスワードを生成するための標準があるかどうか知りたいです。から特殊文字を選択する確率が高くなるように、加重確率分布を使用して重みを割り当てることを検討しましたが、これが広く受け入れられている標準であるかどうかはわかりません。

4

4 に答える 4

3

ruby に組み込まれているSecureRandomモジュールには、ruby 2.5 から便利なメソッドが用意されています。

require "securerandom"

# If you need A-Za-z0-9
SecureRandom.alphanumeric(10)

# If you want to specify characters (excluding similar characters)
# However, this method is NOT PUBLIC and it might be changed someday.
SecureRandom.send(:choose, [*'A'..'Z', *'a'..'z', *'0'..'9'] - ['I', 'l', '1', 'O', '0'], 10)

# Old ruby compatible version
chars = [*'A'..'Z', *'a'..'z', *'0'..'9']
10.times.map { chars[SecureRandom.random_number(chars.length)] }.join

于 2021-08-31T14:11:31.873 に答える
-1

最も簡単な方法は、string_pattern gem https://github.com/MarioRuiz/string_patternを使用することです

これにより、文字を含む 6 ~ 20 文字の 1000 個の一意の文字列が生成され、特殊文字と数字を強制的に含めることができます

require 'string_pattern'
1000.times {
    puts :"6-20:L/$N/&".gen 
}
于 2018-12-06T11:04:01.687 に答える