DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Шифрование данных типа RAW

Мы уже касались темы использования данных типа RAW. Теперь разберемся, как шифровать данные такого типа, воспользовавшись тем фактом, что процедуры DES3ENCRYPT и DES3DECRYPT пакета DBMS_OBFUSCATI- ON_TOOLKIT перегружены. Это означает, что они существуют в нескольких вариантах. Каждый вариант содержит процедуры с одинаковым набором входных параметров и возвращаемым значением encryp- ted_string или decrypted_string (в зависимости от того, зашифровываете вы или расшифровываете). Существуют также версии этих функций и процедур, которые могут работать с данными типа RAW. Эти версии можно использовать для обработки «сырых» данных, таких как большие объекты (LOB).
Разумеется, данные при шифровании можно привести к типу RAW, как показано в этом примере:


Однако преобразование из типа VARCHAR2 в тип RAW требует дополнительных затрат, которые могут заметно снизить производительность. В проведенных тестах показанная здесь версия для типов VARCHAR2 и NUMBER оказалась примерно на 50% медленнее версии, работающей с простыми строками. Т. к. процесс шифрования активно использует процессор, в других системах результат может заметно отличаться. Однако общее правило заключается в том, чтобы по возможности избегать манипуляций с типом RAW, если изначально известно, что ваши данные имеют символьный тип, и вы используете только один набор символов.
 









jAntivirus