# UUIDを使う
pythonの標準モジュールでUUIDというモジュールを使うと簡単に強度な乱数を生成できます。32桁の16進数とそれを4つの-(ハイフン)で区切られた合計36文字の文字列をランダムで生成します。これだけで2^128とおりのパターンがあるので一意の固有の識別番号と言っても過言ではないでしょう。今回はそれを2つ並べます。
# UUIDとは
UUIDとは「Universally Unique Identifier」の略です。これは、コンピューターがファイル、ドキュメント、さらにはメッセージなどに一意の名前や識別番号を付けるために使用する特別な種類のコードです。
例えるなら名札や学生証のようなものでしょう。学校内の他の生徒と区別するための一意の名前または ID 番号があるのと同じように、UUID はコンピュータ上のものに一意の名前または ID 番号を与えます。
UUID は、コンピューターがさまざまなものを混同することなく一度に追跡するのに役立つため、非常に役立ちます。それらは指紋のようなもので、それぞれが一意であり、複製または変更することはできません。
そのため、コンピューター上に UUID を持つドキュメントがある場合、コンピューター上に類似した名前のドキュメントが他にたくさんある場合でも、コンピューターはその UUID を使用してそのドキュメントをすばやく簡単に見つけることができます。
# UUIDを使ってみる
試しにUUIDを使ってパスワードとしても使える文字列を生成してみましょう。
やってることは至ってシンプルで、UUIDを2個並べて文字列にしているだけです。UUIDは1つで32文字の16進数、つまり128ビットの情報を持ちます。それを2つ繋げると256ビットの情報を持つこととなります。それは2の256乗のパターンを持つという意味でもあります。上記のコードを実行すると
のような結果が出力されます。1行目は72桁の文字列と2行目は文字数を意味します。UUID1個でも十分とは思いますが、2個繋げる事でほぼ解析は不可能なパスワードとなったのではないでしょうか?
# 2の256乗とはどんな数字か?
ちなみに2^256とは一体どんな数字なのか、手っ取り早くAIに聞いてみました。結果は以下のとおりです。
だ、そうですw
つまり現存するコンピューターでは絶対に解析できないって事ですよね。このような強固なパスワードを用いればハッキングのリスクも低減されるのではないでしょうか?