Как зашифровать строку подключения без app.config - PullRequest
1 голос
/ 30 ноября 2010

Предположим, что app.config по какой-либо причине не является опцией.

Как можно сохранить зашифрованную строку соединения, либо в самой сборке, либо в другом app.config, подобном XML-файлу?

(я не думаю, что это имеет значение, но это для надстройки COM для Excel 2003).

Ответы [ 3 ]

0 голосов
/ 30 ноября 2010

Вы можете использовать классы в пространстве имен System.Security.Cryptography для зашифровать / расшифровать файл. Тем не менее, вы столкнетесь с другой проблемой, где будет Вы храните ключ? Если вы храните его в сборке, сборка может быть просматривал, чтобы найти ключ, а затем кто-то другой может использовать его для расшифровки данные.

проверить

http://www.codeproject.com/KB/security/encryptstrings.aspx

и

http://sharpertutorials.com/simple-string-encryption-and-decryption/

0 голосов
/ 30 ноября 2010

Звучит как хорошее применение для класса ProtectedData.

http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx

Вызов Protect и передача байтового массива, содержащего строку подключения, вернет байтовый массив зашифрованных данных (которые затем можно преобразовать в base64 и сохранить в локальном файле.

Вызов Unprotect и передача байтового массива, содержащего зашифрованную строку соединения, вернет байтовый массив, содержащий строку открытого текста. Затем просто используйте Convert to ASCII или UTF-8 и т. Д.

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

0 голосов
/ 30 ноября 2010

Это может быть хорошим применением изолированного хранилища.

http://msdn.microsoft.com/en-us/library/3ak841sy(VS.80).aspx

...