第十九回 パスワード生成プログラム

プログラミング編

はじめに

マサト先生
マサト先生

やあ、こんにちは。今日は『パスワード生成プログラム』についてやっていこう。

ヒロト
ヒロト

はい、よろしくお願いします。

マサト先生
マサト先生

コンピュータやネットサービスにログインするときは、パスワードで本人確認されることが多い。今回はプログラムを用いて安全性の高いパスワードを生成してみよう。

ヒロト
ヒロト

そのようなこともできるのですね!きっとランダム関数の出番ですね!

マサト先生
マサト先生

その通りだ!まずは、小文字のアルファベットからパスワードを作ってみよう。下のプログラムを見てほしい。

小文字のアルファベットのみから作る

マサト先生
マサト先生

上のプログラムについて説明しよう。

まず、ランダム関数を使うため1行目に『import random』を書いている。そして、2行目のアルファベットの文字列がパスワードを作るための材料だ。4行目でパスワードの文字数をキーボードから入力して決めるのだ。6~8行目のfor文がメインとなるプログラムだ。for文の回数はパスワードの文字数で、変数 a に『 0 から len(A)-1 』まで、つまり0から25までの整数のいずれかがランダムに代入される。そして、8行目であらかじめ空にしておいたpwdという空の文字列にランダムに選ばれたアルファベット A[a] が代入されるというわけだ。

ヒロト
ヒロト

なるほど、文字列は0番目から数えるのでしたね!

空の文字列pwdをあらかじめ用意しておき、それにランダムに選ばれたアルファベットを代入するという構造になっていることが分かります。納得したので自分で書いて実行してみます。今回は『file49』から書き始めます。

ヒロト
ヒロト

出来ました!パスワードの文字数は7にして実行したところ、ランダムな7文字のパスワード『alpjmjb』が生成されました!

マサト先生
マサト先生

うむ、今回のプログラムはアルファベットの小文字のみで生成されているので安全性が少々低いだろう?そこで、上のプログラムに追加する形でいいので、変数Aに代入する文字列を拡張しよう!つまり、大文字のアルファベットと0から9までの数字を追加しよう。

ヒロト
ヒロト

はい!変数Aの文字列が長くなるほどパスワードの安全性が増すということですね!

パスワードの安全性を高くする

ヒロト
ヒロト

出来ました!今度はパスワードの文字数を12にして実行しました。生成されたパスワードは数字やアルファベットの小文字と大文字がランダムに選ばれているので、とても安全性が高いと言えます。

マサト先生
マサト先生

うむ。そういうことだ!

変数Aに更に記号『 # , $ , % , & , ! 』などを加えれば更に安全性が高くなるだろう。

ヒロト
ヒロト

はい!それらも追加して、実行してみますね!

さらに安全性を高くする

ヒロト
ヒロト

できました!確かにとても複雑なパスワードが生成されました!

マサト先生
マサト先生

うむ。今後活用する機会があればぜひ使ってみるといいだろう!ただ、作ったパスワードはしっかりメモすることだけは忘れずにな。ランダムということは自分にとってもランダムなのだから覚えるのは大変だからな。

ヒロト
ヒロト

はい、自分で考えない分注意しなくてはいけないですね!

マサト先生
マサト先生

うむ。では、今回はここまでにしよう。次回は『素数判定プログラム』についてやろうと思う。今日もお疲れさん。

ヒロト
ヒロト

はい、ありがとうございました!

コメント

タイトルとURLをコピーしました