Немецкая запись в Википедии для UUID получила пример для www.example.org
:
6ba7b810-9dad-11d1-80b4-00c04fd430c8 // namespace UUID
www.example.org // url
74738ff5-5367-5958-9aee-98fffdcd1876 // expected UUID
Помимо этого, Java предлагает UUID класс Вы можете использовать для генерации тестовых данных .(РЕДАКТИРОВАТЬ: Это, кажется, только в состоянии генерировать UUID версии 1,2,3 и 4.)
В ответе на вопрос, который вы связали, есть ответ , где упоминаются некоторые библиотеки, которые могут генерировать версию3/5 UUID:
Кажется, есть несколько библиотек для генерации UUID версии 3/5, включая python uuid модуль, boost.uuid (C ++) и OSSP UUID.(Я не искал никаких .net)
OP Edit
В примере в Википедии DE есть небольшая ошибка:
- он утверждает, что использует
DNS
имя www.example.org
- данная последовательность байтов ASCII предназначена для
www.example.com
- , но хеш SHA1 использует
www.example.org
.
Я бы отредактировал страницу, чтобы изменить последовательность байтов с
0x63 0x6f 0x6d
"com"
на
0x6f 0x72 0x67
"org"
но я не говорю по-немецки, не хочу создавать учетную запись, и я просто слишком ленивый
Пример сводится к
Namespace_DNS: {6ba7b810-9dad-11d1-80b4-00c04fd430c8}
Name: "www.example.org"
объединитьпоследовательности байтов:
Bytes: 6b a7 b8 10 9d ad 11 d1 80 b4 00 c0 4f d4 30 c8 {6ba7b810-9dad-11d1-80b4-00c04fd430c8}
77 77 77 2e 65 78 61 6d 70 6c 65 2e 6f 72 67 "www.example.org"
Хешируйте последовательность байтов с помощью SHA1 и скопируйте большую ее часть непосредственно в UUID:
SHA1 Digest: 74738ff5 5367 e958 9aee98fffdcd187694028007
UUID (v5): 74738ff5-5367-5958-9aee-98fffdcd1876
^ ^
И обратите внимание на преобразование одного из кусочков в5
(для обозначения версии 5).
И старшие 2 бита другого байта устанавливаются в двоичный 10xxxxxx
.