Hai guys,
到目前为止,我使用以下语句来加密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)
这是一个很好的做法还是其他任何方法......
答案 0 :(得分:3)
您可能会在Stackoverflow中的preferred-method-of-storing-passwords-in-database上发现这篇文章也很有用
答案 1 :(得分:2)
如果您的意思是您的应用程序用户密码,那么只需hash and salt用户密码就会更容易(也可能更好)。
有几个原因:
在SQL Server 2005中,有一个函数HashBytes可用。哈希之前不要忘记salt密码。
使用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)
然而,可能,直接在应用程序中创建哈希并且只将哈希密码保存到数据库中要容易得多。