Я занимаюсь некоторыми исследованиями для будущего проекта, и для этого требуется шифрование некоторых данных.
В своем сегодняшнем исследовании я заметил, что существует множество различных алгоритмов шифрования (включая AES, Triple-DES, X-DES и т. Д.), И я хочу использовать один из алгоритмов в SQL-Server (экспресс-пробники 2008r2), как бы вы порекомендовали это сделать, например, лучшие практики и т. д.
Я планирую сделать что-то вроде следующего:
-- Create the master key.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Som3Rand0m!3y?na'
-- Create the cert.
CREATE CERTIFICATE someCert WITH SUBJECT = 'c3p009xFR?'
-- Create Symmetric Key
CREATE SYMMETRIC KEY someSymmetricKey WITH ALGORITHM = TRIPLE_DES ENCRYPTION BY CERTIFICATE someCert
И используйте его следующим образом:
declare @sql varchar(8000)
set @sql = 'OPEN SYMMETRIC KEY someSymmetricKey DECRYPTION BY CERTIFICATE someCert '
exec (@sql)
-- Check the table
SELECT col1, Convert(varchar(max), DECRYPTBYKEY(col2)) as col2
FROM myTable
-- dont forget to close the symmetric key again afterwards.
CLOSE SYMMETRIC KEY someSymmetricKey
Полагаю, это правильный способ (я читал об этом много лет назад и сохранил пример, так что просто дважды проверь:])?
Кроме того, действительно ли существуют какие-либо различия в производительности (или различия в безопасности, такие как одно легче взломать, чем другое) между использованием разных алгоритмов шифрования? << - это тот, который я действительно пытался узнать о / наиболее важном. </p>
Наконец, если я перенесу базу данных на другой сервер, я думаю, что смогу просто заново создать ключ / сертификат таким же образом, и я смогу получить данные обратно и т. Д.
Любые хорошие сообщения в блоге / ссылки / технические документы будут высоко оценены :) (большинство из тех, что я читал, были тихими и плохими)
Спасибо за чтение: D