SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » Расшифровка столбца, зашифрованного в Oracle (Encryption question)
Расшифровка столбца, зашифрованного в Oracle [сообщение #5832] Wed, 18 December 2024 13:50 Переход к следующему сообщению
Vovaa83 в настоящее время не в онлайне  Vovaa83
Сообщений: 3
Зарегистрирован: December 2024
Junior Member
Здравствуйте. У нас такая ситуация. Загружаем в наш SQL Server табличку из Oracle. В одном столбце таблицы Oracle хранятся конфиденциальные данные и им безопасники запрещают по сети передавать этот столбец поэтому они его шифруют на своей стороне и к нам этот столбец приходит в уже зашифрованном виде типа binary (16). Вопрос такой - можно ли уже получив эти данные и сохранив их в нашу таблицу на SQL server , расшифровать этот столбец уже на нашей стороне? Я с шифрованием столкнулся первый раз и пока очень поверхностно понимаю как оно устроено. Может можно как-то воссоздать ключи на нашей стороне которые использовались в Oracle , естественно по договорённости с ними,  и  у нас это сработает? Или тут может даже пытаться не стоит и надо искать другие решения?
Re: Расшифровка столбца, зашифрованного в Oracle [сообщение #5833 является ответом на сообщение #5832] Wed, 18 December 2024 15:52 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 418
Зарегистрирован: August 2022
Senior Member
Можно. Надо спросить у безопасников как они этот столбец зашифровали и применить соответствующее дешифрование.
Re: Расшифровка столбца, зашифрованного в Oracle [сообщение #5834 является ответом на сообщение #5832] Wed, 18 December 2024 16:57 Переход к предыдущему сообщениюПереход к следующему сообщению
Vovaa83 в настоящее время не в онлайне  Vovaa83
Сообщений: 3
Зарегистрирован: December 2024
Junior Member
Спасибо за обнадеживающий ответ. Может у вас ссылка на описание подобных кейсов? Я пока так ничего и не нашел. Они прислали нам скрипт который они используют при шифровании и дешифровке на их стороне :

declare
   l_input    number := 123456;
   l_output   number;
   
   l_encrypted_raw raw(2000);
   l_decrypted_raw raw(2000);
   
   l_num_key_bytes number := 256 / 8;  -- key length 256 bits (32 bytes)
   l_key           raw(32);            -- stores 256-bit encryption key
   
   l_encryption_type pls_integer := dbms_crypto.encrypt_aes256 + dbms_crypto.chain_ecb + dbms_crypto.pad_zero;
begin
   dbms_output.put_line('Original string: ' || l_input);
   
--    l_key := dbms_crypto.randombytes(l_num_key_bytes);
   l_key :=    '1E1760676B29588E7AA6D7F674E989732E7C46604663D7E024E94FB5BA8 41AA3';
   dbms_output.put_line('Key: ' || l_key);

   l_encrypted_raw := dbms_crypto.encrypt(
                                          src => utl_i18n.string_to_raw(l_input, 'AL32UTF8'),
                                          typ => l_encryption_type,
                                          key => l_key
                      );

   dbms_output.put_line('Encrypted number: ' || l_encrypted_raw);

   l_decrypted_raw := dbms_crypto.decrypt(
                                          src => l_encrypted_raw,
                                          typ => l_encryption_type,
                                          key => l_key
                      );

   l_output := utl_i18n.raw_to_char(l_decrypted_raw, 'AL32UTF8');
   
   dbms_output.put_line('Decrypted number: ' || l_output);
end;
/
--     ------------------------------------------------------------ --------------------------------------------------------
Original string: 123456
Key:    1E1760676B29588E7AA6D7F674E989732E7C46604663D7E024E94FB5BA84 1AA3
Encrypted number: 01E008A0ECC9218079118F12751AAFBB
Decrypted number: 123456

Но как я уже говорил я с таким сталкиваюсь впервые и не совсем понимаю что делать. Вроде какой-то ключ они указывают и я даже пытался сделать на основе Key:    1E1760676B29588E7AA6D7F674E989732E7C46604663D7E024E94FB5BA84 1AA3 ключ в SQL Server но это не сработало.

Плюс еще они пишут что у них зашифрованное значение прдеставляется вот в таком виде 01E008A0ECC9218079118F12749AAFBB а если делать шифровку в SQL Server то шивфрованные значения выглядят как абра-кадбра -  ёXaя$J¤Ъ‚ ck=t

[Обновления: Wed, 18 December 2024 17:04]

Известить модератора

Re: Расшифровка столбца, зашифрованного в Oracle [сообщение #5836 является ответом на сообщение #5834] Thu, 19 December 2024 01:59 Переход к предыдущему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 418
Зарегистрирован: August 2022
Senior Member
Гугль подсказывает.
Предыдущая тема: Оптимизация размера базы
Переход к форуму:
  


Текущее время: Mon Dec 30 20:48:10 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00935 секунд