名前空間はuuid5実装で必須ですか!

rottyguy:

それはcorelibsによって提供されますので、私は、Javaでuuid5の様々な実装をテストしようとすると、リファレンス実装としてのpythonを使用しています。Pythonのuuid5は、名前空間が最初のパラメータとして渡されたUUIDが必要ですようしかし、それが見えます。「なし」動作しません。しかし、Javaのcom.fasterxml.uuid.Generators nameBasedGeneratorは、名前空間のための「ヌル」を受け入れます。どちらが正しい?uuid5世代のための「グローバル」または「デフォルト」の名前空間の概念があります。

スティーブンC:

uuid5世代のための「グローバル」または「デフォルト」の名前空間の概念があります。

UUID RFCには、このような概念はありません。名前空間は、使用している名前が描画されるからネーミングシステムを表しています。それは、「グローバル」名前空間について話をするのは意味がありませんので、普遍的なネーミングシステムは、ありません。いくつかの標準的な名前空間のUUIDは、しかし、があります。彼らはで文書化されているRFC 4122付録C

Pythonのuuid5は、名前空間が最初のパラメータとして渡されたUUIDが必要です。None動作しないでしょう。しかし、Javaのはcom.fasterxml.uuid.Generators nameBasedGenerator受け入れるnullの名前空間を

com.fasterxml.uuid.GeneratorsAPIは、標準のJava APIではありません。UUIDのための標準のJava APIはあるjava.util.UUIDが、それはタイプ5 UUIDの生成をサポートしていません。

どちらが正しい?

私はのコードを見てcom.fasterxml.uuid.Generators場合はnull、名前空間が提供され、それが名前の名前空間のUUIDを連結するステップをスキップします。これは、に定めるタイプ3月5日のアルゴリズムでアコードいないRFC 4122のセクション4.3ので、技術的には正しくありません。

しかし、RFCからこの偏差は、何かを壊すべきではありません。それはあなたが通常タイプ3月5日のUUIDのために期待されるよりも高いレートでUUID衝突を生成しません。私は、この拡張機能(非標準ではあるが)無害呼び出すように傾斜させることでしょう。

そう ...

名前空間はuuid5実装では必須ですか?

RFCは、名前空間が必須であること、またはそれが提供されていない場合はどうするか状態しません。一般的にはUUID生成APIは、特にこのAPIの動作があるという範囲を超えて、現在書かれたRFCの。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=362361&siteId=1
おすすめ