Если я правильно вас понимаю, ваша главная цель - не раскрывать первичные ключи, а использовать что-то другое при общении с пользователями.
Самый простой способ:
добавить символ CHARв столбце таблицы и выберите длину, которую вы хотите, чтобы другие идентификаторы имели, например, CHAR (16).
присвойте этому столбцу уникальный индекс, чтобы у вас не было дубликатов.
для каждой строки создайте безопасную * случайную * строку длиной 16 и обновите строку.
НЕ ХЕШИТ простой первичный ключ.Если ключи начинаются с 1,2,3 .., то каждый может сопоставить id
с hash
, просто вычисляя хэши для 1,2,3 .... и т.д.
Другая проблема заключается в том, чтонапример, если у вас уже есть 200 строк в таблице и вы добавляете 1, то злоумышленник может автоматически связать первичный ключ 201 со случайной строкой, которая только что появилась в списке.
С другой стороны, зачемвам нужно спрятать первичные ключи в первую очередь.Может, стоит вместо этого зашифровать личные данные пользователя в столбцах?