подходит для шифрования пароля в SQL Server 2005 - PullRequest
4 голосов
/ 05 января 2010

Хай, ребята,

До сих пор я использую следующие операторы для шифрования переменной пароля в SQL Server 2005

OPEN SYMMETRIC KEY SecureSymmetricKey1
DECRYPTION BY PASSWORD = N'StrongPassword';

 DECLARE @encrypted_str VARBINARY(MAX)
select @encrypted_str=EncryptByKey(Key_GUID('SecureSymmetricKey1'),@Password)

Это хорошая практика или любой другой подход для этого ...

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Вы можете найти этот пост на предпочитаемый метод хранения паролей в базе данных в Stackoverflow, также полезный

2 голосов
/ 05 января 2010

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

Есть несколько причин:

  • Хеширование пароля является обычной практикой / стандартом.
  • Пароль не может быть восстановлен из базы данных (даже при доступе к базе данных трудно восстановить пароль).
  • База данных являетсяне калькулятор - это механизм хранения (расширенный механизм, но для хранения данных, а не для их вычисления).

В SQL Server 2005 имеется функция HashBytes .Не забудьте соль пароль перед хэшем.

Пример кода с использованием HashBytes может выглядеть так:

DECLARE 
    @password nvarchar(100),
    @salt AS nvarchar(100)

SET @salt = 'various random characters i.e. #_$a1b'
SET @password = 'my password'

SELECT HashBytes('SHA1', @salt + @password)

Однако, вероятно, гораздо прощесоздайте хеш непосредственно в приложении и сохраните только хешированный пароль в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...