回答編集履歴

2

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

2020/11/16 11:15

投稿

tatsu99
tatsu99

スコア5458

test CHANGED
@@ -36,14 +36,24 @@
36
36
 
37
37
  p pw
38
38
 
39
+ #最後が必ず数字になる為シャッフルする
40
+
41
+ pw = pw.scan(/./).shuffle.join
42
+
43
+ p pw
44
+
45
+
46
+
39
47
 
40
48
 
41
49
  ```
42
50
 
43
51
  実行結果
44
52
 
45
- "anjzofvsybflug8ewavfvg5xvj3jbn"
53
+ "8c4xnagoqc6mqzsk01e2y6jbrho0lp"
46
54
 
47
- "u9"
55
+ "u3"
48
56
 
49
- "anjzofvsybflug8ewavfvg5xvj3jbnu9"
57
+ "8c4xnagoqc6mqzsk01e2y6jbrho0lpu3"
58
+
59
+ "lbz46uch8ro06g3oykqpe2nq1cs0jmxa"

1

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

2020/11/16 11:15

投稿

tatsu99
tatsu99

スコア5458

test CHANGED
@@ -7,6 +7,12 @@
7
7
  最悪でも1文字はアルファベットと数字が入ります。
8
8
 
9
9
  もっと数字もしくはアルファベットの桁数を増やしたい場合は、適当に桁数を調整してください。
10
+
11
+ アルファベット2文字、数字3文字にしたいなら
12
+
13
+ addw = [*'a'..'z'].sample(2).join + [*'0'..'9'].sample(3).join
14
+
15
+ のようにします。SecureRandom.alphanumericの桁数はその分小さくしてください。
10
16
 
11
17
  ```ruby
12
18
 
@@ -18,7 +24,7 @@
18
24
 
19
25
  #念のためランダムなアルファベット1文字と数字1文字を付加する
20
26
 
21
- addw = [*'a'..'z'].sample(1)[0] + [*'0'..'9'].sample(1)[0]
27
+ addw = [*'a'..'z'].sample(1).join + [*'0'..'9'].sample(1).join
22
28
 
23
29
  pw = pass + addw
24
30