Как расшифровать зашифрованные данные Oracle, которые были реплицированы в SQL Server 2008? - PullRequest
0 голосов
/ 17 сентября 2009

У меня есть случай, когда данные Oracle (номера телефонов) были зашифрованы с помощью функции Oracle DBMS_OBFUSCATION_TOOLKIT DESEncrypt с уникальным сгенерированным пользователем хеш-ключом.

Пример SQL:

 update Phone
   set
     encrypted_phone = WEBX_ENCRYPT_DECRYPT.ENCRYPT(
           '212-555-1201', '8IcrEuOdDjRT5iDjqHLcsA==')
   where
     person_id = 12000039742;

Уникальный хэш-ключ клиента ('8IcrEuOdDjRT5iDjqHLcsA==') рассчитывается по имени пользователя.

Функция WEBX_ENCRYPT_DECRYPT.ENCRYPT вызывает следующую функцию пакета Oracle.

   DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(input:  input_string,
                                       input:  key_string,
                                       output: encrypted_string)

Эти зашифрованные данные телефона затем были реплицированы в базу данных SQL Server 2008.

Информация о шифровании Oracle:

  • Шифрование выполнено с использованием функции Oracle Obfuscation Toolkit DES Encrypt.
  • Используется потоковый шифр DES.
  • Функция DES Encrypt использует 256-битный хэш-ключ (используются только 56 из 256 бит).

Существует ли эквивалентная функция SQL Server 2008, которую можно использовать для расшифровки зашифрованных телефонных строк Oracle?

1 Ответ

1 голос
/ 17 сентября 2009

Нет. Несмотря на то, что дешифрование DES доступно в SQL Server, функции дешифрования SQL Server предполагают, что данные будут иметь формат, который был создан функцией EncryptByKey . формат проприетарный и не общедоступный.

Лучше всего расшифровывать данные в Oracle и передавать их в SQL. В противном случае вам нужно будет расшифровать его, используя какой-то плохой метод, например. функция SQL CLR, которая понимает формат Oracle.

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