Помощь по алгоритму - уникальная кодировка телефонных номеров - PullRequest
0 голосов
/ 04 августа 2020

У меня есть словарь слов, разделенный на два списка разной длины: прилагательные и существительные. Я хочу иметь возможность обратимо кодировать любой номер телефона в формат, в котором у меня есть одно или несколько прилагательных, за которыми следует существительное.

Примеры могут быть: "+447911123456" => "agile sassy stingray" "07911123456 "=>" старая фанк-клюшка для гольфа "

Он должен обладать такими свойствами, как лавинный эффект , и относительно равномерно использовать все слова в словаре.

I так и не смогли придумать алгоритм, удовлетворяющий всем требованиям. Кто-нибудь знает, как это сделать или где узнать больше о таком кодировании?

Если это поможет, я сделал словарь доступным на github . Любая помощь приветствуется!

1 Ответ

0 голосов
/ 04 августа 2020

обратимо кодировать любой номер телефона. Как насчет этого?

  1. Данные номера телефонов обычно состоят из 10–14 цифр, включая международный код, мы можем рассматривать его как 64 битовое целое число (до 19 цифр), если мы игнорируем международный телефонный код «+».
  2. Разделите сегменты на 3 примерно равные зоны = 21 бит каждая.
  3. XOR для каждой зоны с фиксированный повторяющийся шаблон - например, 01 для сегмента 1, 10 для сегмента 2, 11 для сегмента 3.
  4. Выполните простое шифрование шириной 21 бит ... простое индивидуальное можно легко разработать.
  5. После этих преобразований вы получите 3 числа. Используйте числа как ключи к вашему словарю. Третий блок будет ссылаться на словарь существительных.

Цель шагов 3 и 4 - скрыть то, что вы делаете. Например, если бы у нас было 111 111 111 в качестве нашего числа без 3 и 4, у нас могла бы быть «счастливая счастливая собака». С 3 и 4, даже если сегменты 1 и 2 идентичны, это приведет к другим словам, таким как «счастливая неряшливая собака». Вместо этого мы можем получить совершенно другое число в результате повторяющихся слов ... например, 111 843 111 => «счастливый счастливый кот».

Поскольку это только для целей обфускации, это не должно быть ужасно » secure "...

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