質問するログイン新規登録

回答編集履歴

2

機能を追加しました。シャッフルするようにしました。

2020/11/16 11:15

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -17,9 +17,14 @@
17
17
  p pass
18
18
  p addw
19
19
  p pw
20
+ #最後が必ず数字になる為シャッフルする
21
+ pw = pw.scan(/./).shuffle.join
22
+ p pw
20
23
 
24
+
21
25
  ```
22
26
  実行結果
23
- "anjzofvsybflug8ewavfvg5xvj3jbn"
27
+ "8c4xnagoqc6mqzsk01e2y6jbrho0lp"
24
- "u9"
28
+ "u3"
25
- "anjzofvsybflug8ewavfvg5xvj3jbnu9"
29
+ "8c4xnagoqc6mqzsk01e2y6jbrho0lpu3"
30
+ "lbz46uch8ro06g3oykqpe2nq1cs0jmxa"

1

アルゴリズムの間違いを修正しました。桁数の変更に耐えられるようにしました。

2020/11/16 11:15

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -3,12 +3,15 @@
3
3
  残りの2桁にランダムなアルファベット1文字と数字1文字を付け加えます。
4
4
  最悪でも1文字はアルファベットと数字が入ります。
5
5
  もっと数字もしくはアルファベットの桁数を増やしたい場合は、適当に桁数を調整してください。
6
+ アルファベット2文字、数字3文字にしたいなら
7
+ addw = [*'a'..'z'].sample(2).join + [*'0'..'9'].sample(3).join
8
+ のようにします。SecureRandom.alphanumericの桁数はその分小さくしてください。
6
9
  ```ruby
7
10
  require 'securerandom'
8
11
  #小文字のパスワード
9
12
  pass = SecureRandom.alphanumeric(30).downcase
10
13
  #念のためランダムなアルファベット1文字と数字1文字を付加する
11
- addw = [*'a'..'z'].sample(1)[0] + [*'0'..'9'].sample(1)[0]
14
+ addw = [*'a'..'z'].sample(1).join + [*'0'..'9'].sample(1).join
12
15
  pw = pass + addw
13
16
 
14
17
  p pass