Как я должен создать свой GUID?

MyClass2 является просто интерфейсом так techinicaly, он не имеет никаких свойств, только методы. Это сказанное, если у Вас есть переменные экземпляра, которые самостоятельно не serializeable единственный способ, которым я знаю об обойти его, должно объявить те поля переходный процесс.

исключая:

private transient Foo foo;

, Когда Вы объявите полевой переходный процесс, это будет проигнорировано во время процесса сериализации и десериализации. Следует иметь в виду, что при десериализации объекта с переходным полем, которым всегда будет значение поля, это - значение по умолчанию (обычно пустой указатель.)

Примечание можно также переопределить readResolve () метод класса для инициализации переходных полей на основе другого состояния системы.

13
задан Steven Mercatante 12 March 2014 в 13:16
поделиться

2 ответа

РЕДАКТИРОВАТЬ:

Ура! Я забыл об этом своем древнем ответе. Чтобы прояснить путаницу, созданную моей наивностью (в соответствии с комментариями, сделанными ниже): MD5 (как и большинство полезных хешей по своей природе) не инъективны, поэтому их результат не гарантированно будет уникальным для всех входных данных.

Если конфликты хеширования являются проблемой (в данном случае они есть), использование этого метода потребует проверки после хеширования, был ли уже сгенерирован идентичный ключ.


Поскольку uniqid использует текущее время в микросекундах для генерации guid, практически нет шансов, что вы когда-нибудь столкнетесь с одним и тем же дважды.

Так что, если вы просто используете его для создания уникальных имен файлов, uniqid () будет достаточно. Если вы хотите, чтобы пользователи не могли угадать guid,

20
ответ дан 1 December 2019 в 20:57
поделиться

GUID - это версия UUID от Microsoft. Uniqid PHP - это версия UUID 4. Определенно достаточно хорошо.

6
ответ дан 1 December 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: