Как зашифровать и расшифровать конфиденциальную информацию в базе данных SQL Server с помощью ASP Classic? - PullRequest
7 голосов
/ 18 ноября 2011

Я проверял различные вопросы на stackoverflow и, конечно, Google, но я не могу найти какое-то конкретное решение этого вопроса:

Как мне создать функцию в ASP Classic для шифрования и дешифрования в высокой степениконфиденциальная информация в базе данных SQL Server?Как FX.номер социального страхования или что-то подобное?

(или это можно сделать в моей строке SQL?)

И да, я знаю, как создать функцию с ASP;)

И нет, я просто не могу хешировать информацию с SHA или MD5, потому что они работают только в одном направлении.Мне нужно, чтобы он работал в обоих направлениях!

Чем больше безопасности, тем лучше!:)

РЕДАКТИРОВАТЬ:
Впоследствии я нашел это:

http://www.4guysfromrolla.com/webtech/010100-1.shtml

Но я не знаю, насколько это безопаснохватит и будет делать?Из чего я вижу, это идет в обе стороны?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Может быть полезно разрешить SQL Server обрабатывать шифрование / дешифрование с использованием ключей / сертификатов.Таким образом, вам не нужно кататься самостоятельно с ASP, и управление этой системой хранится там, где находятся сами данные.Существует также преимущество отсутствия необходимости обновлять этот процесс, если вы решите перейти на другую платформу.

Это простой процесс создания ключей на сервере и их использования после того, как этот пункт также прост,например;

Encrypt;

OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert]
UPDATE table SET number = EncryptByKey(Key_GUID('mykey'), @number)

Decrypt;

 OPEN SYMMETRIC KEY mykey DECRYPTION BY CERTIFICATE [mycert]
 SELECT CONVERT(varchar, DecryptByKey(number)) AS number FROM TABLE

Хороший обзор этого можно найти здесь Введение в шифрование SQL Server

1 голос
/ 18 ноября 2011

Вы можете успешно использовать шифр Rinjdael в VBScript с этой библиотекой . Ключевыми функциями являются EncryptData () и DecryptData ().

Мне кажется, это достаточно безопасно. Очевидно, вы захотите держать свой ключ в секрете. Прикладная переменная в global.asa может быть хорошим местом для хранения этого (как правило, там, где находятся строки подключения и тому подобное).

...