アップロードされた画像名やセッションIDなど、一意の文字列生成の実装をいくつかやめたようです。それらの多くは、SHA1などのハッシュを使用しています。
私はこのようなカスタムメソッドを使用することの正当性に疑問を投げかけているのではなく、むしろその理由に疑問を投げかけています。一意の文字列が必要な場合は、次のように言います。
>>> import uuid
>>> uuid.uuid4()
UUID('07033084-5cfd-4812-90a4-e4d24ffb6e3d')
そして、私はそれで終わりました。uuidを読む前はあまり信頼していなかったので、次のようにしました。
>>> import uuid
>>> s = set()
>>> for i in range(5000000): # That's 5 million!
>>> s.add(str(uuid.uuid4()))
...
...
>>> len(s)
5000000
リピーターは1人ではありません(オッズが1.108e + 50のようなものであることを考えると、今は期待していませんが、実際に動作しているのを見るのは快適です)。2秒を組み合わせて弦を作るだけでオッズを半分にすることもできますuuid4()
。
それで、なぜ人々はランダムな文字列などのためにrandom()や他のものに時間を費やすのですか?uuidに関して重要なセキュリティ問題またはその他がありますか?