Задать вопрос
@egetmanenko

Как скрыть id записи в виде другого числа длинной до 16 символов?

Есть таблица с закладываемой ёмкостью 1 млрд. записей. Нужно придумать публичный идентификатор, который не будет инкрементальным, будет состоять из цифр и длина которого будет максимум 16 символов. Есть ли такой алгоритм шифрования/преобразования? Может нужно использовать рандомом?

Возможно, что есть такое шифрование, которое даст на выходе хеш длиной 16 символов из набора HEX, что в переводе в DEC составляет 19 символов длинной, что тоже приемлемо.
  • Вопрос задан
  • 2356 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Хеширование приведет к тому, что будут появляться случаи, когда разные SrcID будут превращаться в одинаковые PubID, что для Вас как я понял неприемлемо.

То, что Вам нужно - это обычное симметричное шифрование. Оно по определению биективно, т.е. отображает каждый SrcID в уникальный PubID (для того, чтобы можно было однозначно расшифровать текст обратно). Если Вас устраивает пространство в 16 символов из набора HEX, то подойдет любой блочный шифр с размером блока в 64 бита - я бы посоветовал RC5 или Blowfish. Ключ шифрования задайте случайным образом из стойкого источника (например, вручную) и главное - не меняйте в течение всего времени жизни системы - тогда PubID будут гарантированно уникальными при возрастании SrcID.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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