強固なパスワードを生成するためのルールとして
「必ず英字と数字を混ぜる」というのをよく見る。
でもこれの意味がわからない。
計算めんどくさいから大文字小文字は無視させていただいて、
例えば8文字のパスワードを作るとき
英字だろうが数字だろうが何でもいい場合の組み合わせは
英字26文字 + 数字10文字で36文字あるから
368 = 2,821,109,907,456
通りになる。
ところが英字数字を必ず混ぜる場合は
英字ばっかり268通りと数字ばっかり108通りを除外して
368 – 268 – 108
= 2,821,109,907,456 – 208,827,064,576 – 100,000,000
= 2,612,182,842,880
通りになってしまう。
まあどっちにしても2兆通り以上あるので
なかなかたどり着けないとは思うんだけど、
それでもほんのちょっと(約2,000億通り)候補が減ってしまう。
もちろんサービス提供側としては
英字や数字ばっかりを許可すると
自分の誕生日や名前など
推測が容易なパスワードにしちゃう人がいるだろうから
最初からそういうことができない仕組みにしておくのはわかる。
でもこれはいわゆるフールプルーフな仕組みの話であって、
「パスワードは推測されないものにしないとね」という発想のある人が
自分のパスワードを生成するときのルールにするのは
何か違うような気がする。
黙ってそれを実行するだけならまだしも
「私はそういうルールにしています」と公言した時点で
自分のパスワードをほんのちょっとだけ脆くしてしまわないだろうか。
と思うんだけど、何か計算がおかしかったら教えてください。
計算といえば、上記の何十なんぼの何乗というやつは
いちいち電卓たたいたのではなくて
Google の検索窓に「36^8」って入れただけです。便利。