2017-01-18 4 views
0

Я ищу некоторый легкий алгоритм шифрования для шифрования таблицы. Я объяснил свои требования ниже:Шифрование базы данных на SQL Server без изменения типа данных

Сценарий: рассмотрим только одну таблицу на SQL Server для простоты. Через каждые 3 секунды данные вставляются в таблицу. Так как я выгляжу для шифрования и дешифрования в SQL Server, я наткнулся на некоторые хорошие ссылки (https://blog.sqlauthority.com/2009/04/28/sql-server-introduction-to-sql-server-encryption-and-symmetric-key-encryption-tutorial-with-script/)

Constraint: согласно этой статье, нам нужно изменить тип данных любого столбца, в котором мы должны применить шифрование varbinary но Я не хочу изменять тип данных любого столбца (база данных уже работает нормально - за исключением шифрования)

Так что, даже если я считаю это EncryptByKey простым решением, но я не хочу менять тип данных всех моих колонны.

Любое другое предложение, в котором мне не нужно менять типы данных?

+0

https://msdn.microsoft.com/en-us/library/bb934049.aspx –

+0

Если вы ничего не можете изменить в своей базе данных SQL Server - не можете ли вы просто зашифровать данные в своем клиентском приложении и отправить * * зашифрованные ** данные на SQL Server для хранения? –

ответ

1

Результат шифрования не является строкой, это массив из 8-разрядных байтов, который не является допустимым символом в любой кодировке символов. Это является причиной типа данных varbinary.

Лучшее решение состоит в том, чтобы изменить тип данных на varbinary, но если это неприемлемо, обход должен состоять в том, чтобы кодировать вывод шифрования в допустимое представление символов, причем два наиболее распространенных из них - Base64 и hexadecimal. Это, конечно, добавит некоторый код и время как для добавления в базу данных, так и для извлечения.

+0

Привет, я пытаюсь работать с varbinary. Я пишу следующую процедуру: – user3582228

0

Это зависит от того, каков текущий тип данных для каждого столбца. Для чего-то, что уже есть varchar, вы можете просто закодировать шифрованный текст в Base64 или шестнадцатеричный, как сказал zaph. Для столбца, который должен поддерживать определенный формат, вам нужно будет исследовать Format Preserving Encryption - например, how to encrypt credit card numbers while maintaining the format.

Смежные вопросы