У меня довольно простые требования к SQL Server, где у меня есть столбец типа int
, и я хочу зашифровать этот столбец, учитывая, что функция, которая будет использоваться для шифрования столбца, должна генерировать одинаковое значение каждый раз это называется.Шифрование согласованного столбца SQL Server
Контекст
- У меня есть система с 2 пользователя роли источника роли, Target Роль
- Источник пользователи Роль генерации таблиц со следующей структурой столбцы ID => Int метаданных => VARCHAR
- Моя система будет генерировать копию исходной таблицы с обфускацией ID
- Пользователи целевой роли будут иметь доступ к сгенерированной таблице и могут добавлять/обновлять столбцы метаданных, однако они не должны знать четкие ID
My Trials
- Я попытался
ENCRYPTBYKEY
с идентифицирующей и без идентифицирующей однако каждый раз, когда я называю эту функцию, он создает другое значение, которое может быть полезным в некоторых случаях, однако у меня это не один из них :) - Кроме того, я попытался с помощью
ENCRYPTBYASYMKEY
и то же поведение оказалось что отличается выход с каждым вызовом - Я также нашел эту forum post, что упоминая SQL Server использует Rando m вектора инициализации
Вопрос: Каковы возможные решения для выполнения моих требований, учитывая, что функция будет использоваться для шифрования таблиц с миллионами записей.
Каковы ваши * настоящие требования? Почему такое же значение? Вы вводите в заблуждение шифрование с хешированием? Симметричное шифрование, которое * не использует соление, считается * небезопасным * и сломанным по определению. Причина чрезвычайно проста - кто-то может создать карту зашифрованных строк и восстановить исходные данные с помощью простого поиска. * Почему * вы хотите идентичное шифрование, когда вы можете просто расшифровать с помощью оригинального ключа? –