Pythonを利用する理由以外のものuuid4()のための独自の文字列?

StackOverflow https://stackoverflow.com/questions/2434931

  •  19-09-2019
  •  | 
  •  

質問

見終了数の実装の独特の文字列生成物のように更新された画像、氏名、セッション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

なリピーター(Iされる一検討のオッズは1.108e+50で癒さだけます。あなたの最大の半うような文字列を組み合わせ2 uuid4()s.

いということで、なぜ人は時間をランダム()その他のものための独自の文字列などが有ります。が重要なセキュリティ問題またはその他に関するuuid?

役に立ちましたか?

解決

リソースを一意に識別するためにハッシュを使用して、オブジェクトから「ユニークな」参照を生成することができます。例えば、GitはSHAコミット単一の正確なチェンジを表す一意のハッシュを作るためにハッシング使用しています。ハッシュが決定的であるので、あなたは、同じファイル毎回のために同じハッシュを取得します。

世界中の二人が独立して同じレポに同じ変更を加えることができ、そしてGitのは、彼らが同じ変更をした知っているだろう。彼らは、ファイルまたはファイルの内容とは関係を持たないのでUUID V1、V2、およびV4はそれをサポートすることはできません。

他のヒント

さて、時にはあなたは、衝突をしたいです。誰かが二度同じ正確なイメージをアップロードした場合は、多分あなたは、むしろそれは重複だことを伝えたいだけではなく、新しい名前で別のコピーを作成します。

このた独特の文字列を人間が読む.Uuidでいます。

UUIDが(あなたがUUIDで注文した場合、たとえば、あなたが無意味な結果を得る)長く、かつ意味があります。

そして、それはあまりにも長いですので、私はURLにそれを置くか、いかなる形でユーザーに公開したくないでしょう。

他の回答に加えて、ハッシュは不変であるべきもののために本当に良いです。名前は一意であり、それは随時に添付されているものの整合性をチェックするために使用することができます。

は、また、UUIDの他の種類も適切であろう注意してください。あなたの識別子が注文可能にしたい場合たとえば、UUID1は、タイムスタンプに基づいています。それはあなたのアプリケーションの要件については本当にすべてだ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top