Используйте имя человека, чтобы создать уникальный, необратимый идентификатор - PullRequest
0 голосов
/ 12 февраля 2019

Есть ли способ (алгоритм) взять чье-то имя (имя и фамилию) и превратить его в уникальный, необратимый идентификатор?Я знаю, что могу просто начать с уникального id = 1 и просто добавить один.Мне было интересно, если бы я мог генерировать идентификаторы, используя чье-то имя.

Я только после указателя на способ сделать это, и я сам кодирую это.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Нет.

Вы говорите, что хотите сгенерировать необратимый идентификатор из имени.В то время как вы можете создать идентификатор из имени, это всегда будет обратимо.Это связано с тем, что в имени недостаточно информации.

Учтите, что любое имя выбирается из набора из 7 миллиардов имен (это столько людей), тогда максимально возможная энтропия Шеннона для идентификатора равнаоколо 32,7 бит.Другими словами, потребуется около 2 ^ 32,7 попыток, прежде чем вы попробуете все имена на Земле.Для компьютера это просто.

Например, если мы создадим идентификаторы путем хеширования с помощью SHA256, как Лука Джошуа Парк предлагает , мы можем легко найти имя, соответствующее идентификатору, используярегулярная атака грубой силы.Моему ноутбуку требуется всего 0,5 мкс для вычисления хэша SHA256.Таким образом, чтобы найти идентификаторы у всех людей на земле, мне понадобится меньше часа, если я использую несколько громоздкий процессор.

0 голосов
/ 12 февраля 2019

То, что вы запрашиваете, называется хеш-функцией .Хеш-функции всегда будут выдавать один и тот же вывод фиксированной длины для данного входа.

Для некриптографических операций SHA256 часто является хорошим выбором.Он выдаст 256-битный вывод и изначально доступен в большинстве стандартных библиотек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...