Rubyでは、パスワードを生成してくれるコードを簡単に作成することができます。
まずは。パスワードを生成してくれるコードを紹介してから、次にひとつひとつの関数などの機能についてを説明していきます。
生成するパスワードの文字数は、「8」文字のアルファベット縛りとしていきます。(文字数については変更可能です)
パスワードを生成するコード
早速ですが、下記のコードをターミナルなどに打つことでパスワードを生成してくれます。
('a'..'z').to_a.shuffle[0..7].join
すると、ランダムなアルファベット8文字を生成してくれます。
この生成された文字をパスワードとして使おうという感じになります。
それぞれ関数などの説明
ひとつひとつの関数などには動きがあります。
なので、コードの左側からひとつひとつの機能について説明していきます。
('a'..'z').to_a
to_a
で、('a'..'z')
で指定したアルファベットを順番に配列に格納しています。
冒頭に('a'..'z')
と記述することで、アルファベットの「a」から「z」までを指定しています。
>> ('a'..'z').to_a
=> ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
.shuffle
.shuffle
にて、文字通り配列内の文字列をシャッフルしています。
ここで、先ほど配列に格納したアルファベットの「a」から「z」をシャッフルします。
>> ('a'..'z').to_a.shuffle
=> ["y", "j", "d", "e", "x", "o", "i", "p", "k", "b", "w", "t", "c", "g", "m", "n", "z", "q", "r", "f", "l", "v", "h", "u", "s", "a"]
[0..7]
配列の先頭から、「8」つの要素(8文字)を取り出します。
9つ目以降の要素については消去されます。
ここの7
という数字を大きくしたり小さくしたりすることで、パスワードの文字数を変更することができます。
>> ('a'..'z').to_a.shuffle[0..7]
=> ["l", "w", "r", "j", "a", "b", "p", "i"]
※.shuffle
を実行しているので、配列内の文字は変わっています。
.join
.join
で、バラバラだった要素を結合させます。
先ほど取り出した「8」つの要素を結合させて、1つの文字列としてまとめてパスワードの完成となります。
>> ('a'..'z').to_a.shuffle[0..7].join
=> "rcvykpjg"
※これもまた、.shuffle
を実行しているので(ry
結果
そうすることで、下記のように8文字のパスワードが生成されます。
rcvykpjg