что такое uuid в майнкрафт

Что такое uuid в майнкрафт

что такое uuid в майнкрафт

Описание

что такое uuid в майнкрафт

что такое uuid в майнкрафт

Ведущий плагин UUID all-in-one.

Блокировать пользователей, которые сменили свое название на просто проверка пользователи наименование историю или UUID.

что такое uuid в майнкрафт

UUID-это простой в использовании и легкий плагин, который будет проверять и показывать вам UUID игроков, чтобы вы могли использовать его для настройки недавно обновленных плагинов, поддерживающих UUID. Девайс может видеть ребенка прямо сейчас, но обновление выйдет! 🙂

Плагин очень легкий, и вы даже не будете знать, что он там! Производительность сервера не покажет разницы. Даже если вы думаете: «Мне это не нужно», все равно полезно установить его на свой сервер, потому что может наступить время, когда вам нужно будет проверить UUID игроков на наличие ссылок для вашего сервера — ну вот, теперь вы можете!

Вам действительно не нужно читать эту следующую часть.

Небольшая заметка о том, как я делаю свои версии обновлений:

V1.2.3 — 1 = Когда я переделываю плагин или делаю массовое обновление. 2 = Когда я добавляю новую функцию (Количество функций, добавленных corrspands к заданному числу) 3 = Количество ошибок/проблем, которые я исправил | So V2.4.21 = Я переделал плагин 1 раз (V1.0-это только первый выпуск плагина) Я добавил 4 новые функции с момента запуска нового капитального ремонта (V2) и исправил 21 проблему/ошибку с момента запуска капитального ремонта (V2)

что такое uuid в майнкрафт

Особенности:

что такое uuid в майнкрафтОчень легкий плагин.

что такое uuid в майнкрафтПроверьте UUID игрока быстро и легко.

что такое uuid в майнкрафтПолная поддержка консоли.

что такое uuid в майнкрафтАвтоматическое обновление.

Источник

Minecraft Wiki

The Minecraft Wiki is no longer considered as official by Microsoft and therefore several changes are required to be made, including to the wiki’s logo. Please read this announcement for more information.

Universally unique identifier

UUIDs (Universally unique identifiers; Java Class) are 128 bit long numbers that are used by Minecraft to distinguish between separate instances.

Contents

Representation [ ]

Occurences [ ]

The following table represents the situations in which UUIDs are used in places accessible by a player:

Location (general)Location (path)FormatUse
All entities (NBT)UUIDint-arrayOwn UUID
Attribute modifiers (NBT)UUIDint-arrayOwn UUID. Used when equipping and unequipping the item to identify which modifier to add or remove from the entity.
Attribute modifiers (Loot table)idHyphenated hexadecimalSet UUID of modifier in set_attributes function
/attributeHyphenated hexadecimalUsed to identify modifier
Tameable mobs (NBT)Ownerint-arrayOwner
Projectiles (NBT)Ownerint-arrayEntity that shot the projectile
Item entities (NBT)Ownerint-arrayTarget player for /give command
Item entities (NBT)Throwerint-arrayPlayer who dropped the item
Shulker bullets (NBT)Targetint-arrayEntity targeted for attack
Conduits (NBT)Targetint-arrayEntity targeted for attack
Player heads (NBT)SkullOwner.Idint-arrayOwner of the skin
Player heads (NBT)SkullOwner.Properties.textures[].Value.ProfileIdhexadecimalOwner of the skin
Mobs (NBT)Leash.UUIDint-arrayEntity that leashed the mob
Breedable mobs (NBT)LoveCauseint-arrayPlayer who fed the mob
Zombie Villagers (NBT)ConversionPlayerint-arrayPlayer who is converting the Zombie Villager
Neutral mobs except piglins (NBT)AngryAtint-arrayEntity that hurt the neutral mob
Villagers (NBT)Gossips[].Targetint-arrayPlayer who caused the gossip
Players (NBT)RootVehicle.Attachint-arrayIdentifier of the entity that the player is riding
Target selectors (Commands)Hyphenated hexadecimalSelected entity

Technical aspects [ ]

Value range [ ]

Hyphenated hexadecimal format section names [ ]

Section nameBit range
FromToSizeCharacters
time-low96127328
time-mid8095164
time-high-and-version5479164
clock-seq-and-reserved365382
clock-seq-low484582
node0474812

(The names make sense only for version 1 and 2 UUIDs, but it has been passed onto all forms of UUIDs used.)

Versions and variants [ ]

There have been five versions of UUIDs. Versions 1 and 2 are based on current time and MAC address; versions 3 and 5 are based on hashing a string; version 4 is based on completely random generation. The «version» value occupies four bits, and is located in the UUID string format at the position indicated by an «A».

The «B» position is the variant (format) of the UUID. Depending on the specific variant, it may occupy the high 1 to 3 bits:

In Minecraft [ ]

Minecraft uses version 4, variant 1 (RFC) UUIDs, which means that the entire number with the exception of the bits used for metadata (version and variant) is randomly generated. Java’s UUID.randomUUID() function performs this exact task.

A table with the locations and values of the metadata:

Источник

Универсальный уникальный идентификатор

UUID ( Универсальные уникальные идентификаторы ; Java Class) — это 128-битные числа, которые используются Minecraft для различения отдельных экземпляров.

Представление

Случаи

В следующей таблице представлены ситуации, в которых UUID используются в местах, доступных для игрока:

Технические аспекты

Диапазон значений

Названия разделов шестнадцатеричного формата с переносом через дефис

Имя разделаДиапазон бит
ОтдоРазмерСимволы
мало времени96127328
время-середина8095164
высокая версия и время5479164
часы-сек-и-зарезервированы365382
clock-seq-low484582
узел0474812

(Имена имеют смысл только для версии 1 и 2 UUID, но он был передан во все формы используемых UUID.)

Версии и варианты

Было пять версий UUID. Версии 1 и 2 основаны на текущем времени и MAC-адресе; версии 3 и 5 основаны на хешировании строки; версия 4 основана на полностью случайной генерации. Значение «версия» занимает четыре бита и находится в строковом формате UUID в позиции, обозначенной буквой «A».

В Minecraft

Minecraft использует UUID версии 4, вариант 1 (RFC), что означает, что все число, за исключением битов, используемых для метаданных (версия и вариант), генерируется случайным образом. Функция Java UUID.randomUUID () выполняет именно эту задачу.

Таблица с расположениями и значениями метаданных:

Источник

Как генерируются UUID

что такое uuid в майнкрафт

Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.

Теория

UUID (universally unique IDentifier) — это 128-битное число, которое в разработке ПО используется в качестве уникального идентификатора элементов. Его классическое текстовое представление является серией из 32 шестнадцатеричных символов, разделённых дефисами на пять групп по схеме 8-4-4-4-12.

Информация о реализации UUID встроена в эту, казалось бы, случайную последовательность символов:

Значения на позициях M и N определяют соответственно версию и вариант UUID.

Версия

Номер версии определяется четырьмя старшими битами на позиции М. На сегодняшний день существуют такие версии:

что такое uuid в майнкрафт

Вариант

Это поле определяет шаблон информации, встроенной в UUID. Интерпретация всех остальных битов в UUID зависит от значения варианта.

Мы определяем его по первым 1-3 старшим битам на позиции N.

что такое uuid в майнкрафт

1 0 0 0 = 8
1 0 0 1 = 9
1 0 1 0 = A
1 0 1 1 = B

Так что если вы видите UUID с такими значениями на позиции N, то это идентификатор в варианте 1.

Версия 1 (время + уникальный или случайный идентификатор хоста)

В этом случае UUID генерируется так: к текущему времени добавляется какое-то идентифицирующее свойство устройства, которое генерирует UUID, чаще всего это MAC-адрес (также известный как ID узла).

Идентификатор получают с помощью конкатенации 48-битного МАС-адреса, 60-битной временной метки, 14-битной «уникализированной» тактовой последовательности, а также 6 битов, зарезервированных под версию и вариант UUID.

Тактовая последовательность — это просто значение, инкрементируемое при каждом изменении часов.

Временная метка, которая используется в этой версии, представляет собой количество 100-наносекундных интервалов с 15 октября 1582 года — даты возникновения григорианского календаря.

Возможно, вы знакомы с принятым в Unix-системах исчислением времени с начала эпохи. Это просто другая разновидность Нулевого дня. В сети есть сервисы, которые помогут вам преобразовать одно временное представление в другое, так что не будем на этом останавливаться.

Хотя эта реализация выглядит достаточно простой и надёжной, однако использование MAC-адреса машины, на которой генерируется идентификатор, не позволяет считать этот метод универсальным. Особенно, когда главным критерием является безопасность. Поэтому в некоторых реализациях вместо идентификатора узла используется 6 случайных байтов, взятых из криптографически защищённого генератора случайных чисел.

Сборка UUID версии 1 происходит так:

Поскольку эта реализация зависит от часов, нам нужно обрабатывать пограничные ситуации. Во-первых, для минимизации коррелирования между системами по умолчанию тактовая последовательность берётся как случайное число — так делается лишь один раз за весь жизненный цикл системы. Это даёт нам дополнительное преимущество: поддержку идентификаторов узлов, которые можно переносить между системами, поскольку начальное значение тактовой последовательности совершенно не зависит от идентификатора узла.

Помните, что главная цель использования тактовой последовательности — внести долю случайности в наше уравнение. Биты тактовой последовательности помогают расширить временную метку и учитывать ситуации, когда несколько UUID генерируются ещё до того, как изменяются процессорные часы. Так мы избегаем создания одинаковых идентификаторов, когда часы переводятся назад (устройство выключено) или меняется идентификатор узла. Если часы переведены назад, или могли быть переведены назад (например, пока система была отключена), и UUID-генератор не может убедиться, что идентификаторы сгенерированы с более поздними временными метками по сравнению с заданным значением часов, тогда нужно изменить тактовую последовательность. Если нам известно её предыдущее значение, его можно просто увеличить; в противном случае его нужно задать случайным образом или с помощью высококачественного ГПСЧ.

Версия 2 (безопасность распределённой вычислительной среды)

Главное отличие этой версии от предыдущей в том, что вместо «случайности» в виде младших битов тактовой последовательности здесь используется идентификатор, характерный для системы. Часто это просто идентификатор текущего пользователя. Версия 2 используется реже, она очень мало отличается от версии 1, так что идём дальше.

Версия 3 (имя + MD5-хэш)

Если нужны уникальные идентификаторы для информации, связанной с именами или наименованием, то для этого обычно используют UUID версии 3 или версии 5.

Они кодируют любые «именуемые» сущности (сайты, DNS, простой текст и т.д.) в UUID-значение. Самое важное — для одного и того же namespace или текста будет сгенерирован такой же UUID.

Обратите внимание, что namespace сам по себе является UUID.

В этой реализации UUID namespace преобразуется в строку байтов, конкатенированных с входным именем, затем хэшируется с помощью MD5, и получается 128 битов для UUID. Затем мы переписываем некоторые биты, чтобы точно воспроизвести информацию о версии и варианте, а остальное оставляем нетронутым.

Важно понимать, что ни namespace, ни входное имя не могут быть вычислены на основе UUID. Это необратимая операция. Единственное исключение — брутфорс, когда одно из значений (namespace или текст) уже известно атакующему.

При одних и тех же входных данных генерируемые UUID версий 3 и 5 будут детерминированными.

Версия 4 (ГПСЧ)

Самая простая реализация.

6 битов зарезервированы под версию и вариант, остаётся ещё 122 бита. В этой версии просто генерируется 128 случайных битов, а потом 6 из них заменяется данными о версии и варианте.

Такие UUID полностью зависят от качества ГПСЧ (генератора псевдослучайных чисел). Если его алгоритм слишком прост, или ему не хватает начальных значений, то вероятность повторения идентификаторов возрастает.

В современных языках чаще всего используются UUID версии 4.

Её реализация достаточно простая:

Версия 5 (имя + SHA-1-хэш)

Единственное отличие от версии 3 в том, что мы используем алгоритм хэширования SHA-1 вместо MD5. Эта версия предпочтительнее третьей (SHA-1 > MD5).

Практика

Одним из важных достоинств UUID является то, что их уникальность не зависит от центрального авторизующего органа или от координации между разными системами. Кто угодно может создать UUID с определённой уверенностью в том, что в обозримом будущем это значение больше никем не будет сгенерировано.

Это позволяет комбинировать в одной БД идентификаторы, созданные разными участниками, или перемещать идентификаторы между базами с ничтожной вероятностью коллизии.

UUID можно использовать в качестве первичных ключей в базах данных, в качестве уникальных имён загружаемых файлов, уникальных имён любых веб-источников. Для их генерирования вам не нужен центральный авторизующий орган. Но это обоюдоострое решение. Из-за отсутствия контролёра невозможно отслеживать сгенерированные UUID.

Есть и ещё несколько недостатков, которые нужно устранить. Неотъемлемая случайность повышает защищённость, однако она усложняет отладку. Кроме того, UUID может быть избыточным в некоторых ситуациях. Скажем, не имеет смысла использовать 128 битов для уникальной идентификации данных, общий размер которых меньше 128 битов.

Уникальность

Может показаться, что если у вас будет достаточно времени, то вы сможете повторить какое-то значение. Особенно в случае с версией 4. Но в реальности это не так. Если бы вы генерировали один миллиард UUID в секунду в течение 100 лет, то вероятность повторения одного из значений была бы около 50 %. Это с учётом того, что ГПСЧ обеспечивает достаточное количество энтропии (истинная случайность), иначе вероятность появления дубля будет выше. Более наглядный пример: если бы вы сгенерировали 10 триллионов UUID, то вероятность появления двух одинаковых значений равна 0,00000006 %.

А в случае с версией 1 часы обнулятся только в 3603 году. Так что если вы не планируете поддерживать работу своего сервиса ещё 1583 года, то вы в безопасности.

Впрочем, вероятность появления дубля остаётся, и в некоторых системах стараются это учитывать. Но в подавляющем большинстве случаев UUID можно считать полностью уникальными. Если вам нужно больше доказательств, вот простая визуализация вероятности коллизии на практике.

Источник

About
Hey guys, so lately there has been a lot of buzz going around that Minecraft name changes will screw up server bans, and there are still a few people who do not understand the concept of a unique user ID. Using the program, you can enter your Minecraft username, and it will fetch your UUID from the Mojang servers.
There is not much use for this, however, I just wanted to prove to those people who do not believe in UUIDs, that they do exist.

And yes, I do know that you can get a persons UUID via a minecraft server (1.7.x and up). However, I made this for the fun of it, and also to make a point to people.

This application runs in a DOS shell on a windows computer, and a terminal window on a mac. I have not used this on Linux, so it might not work. This is developed in Java, and I am using GSON to convert the profile criteria to JSON.

3 Update Logs

After some major testing, and investigating since last month or so, I have found out that the GSON API supplied by Mojang does not work after previous UUID database updates.
The only way that this program works, is by using Mojang’s GSON API, therefor, if that is broken this program is broken.

However, this project is not going out of circulation, as I am going to be releasing a super simple PHP script that allows you to get your UUID, keep your eyes peeled on the forums for that.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

CreditMojang, Google, Oracle, AwesomeMin3r2000
Progress100% complete
Game VersionMinecraft 1.7.4
Tags