2014-11-20 2 views
0

Я хочу зашифровать имя пользователя и пароль как в таблицах sql. полезно (если какой-либо метод для шифрования данных в Sql Server) или я должен применять для ключей шифрования и дешифрования от переднего конца.как получить данные в sql server 2012 или sql server 2008 r2?

до сих пор я использую шифрование и дешифрование с передней стороны с использованием метода HttpUtility и base 64.

+0

Вы можете использовать PWDENCRYPT для шифрования поля пароля. И в то время дешифрования вы просто сравниваете значение пароля HASHED с открытым текстом, используя PWDCOMPARE. –

ответ

1

Шифрование на уровне столбцов (например, шифрование на уровне ячеек) было введено в SQL Server 2005 и доступно во всех выпусках SQL Server, включая бесплатную версию SQL Server Express. Чтобы использовать шифрование на уровне ячейки, схема должна быть изменена на varbinary, а затем преобразована в нужный тип данных. Это означает, что приложение необходимо изменить для поддержки операции шифрования-дешифрования; Кроме того, это может повлиять на производительность. Шифрование базы данных происходит на уровне страницы, но когда эти страницы считываются в буферный пул, они дешифруются. Данные могут быть зашифрованы с использованием ключевой фразы, асимметричного ключа, симметричного ключа или сертификата. Поддерживаемые алгоритмы шифрования на уровне столбцов - AES с 128,196,256 бит ключами и 3DES. Чтобы узнать больше о шифровании на уровне столбца

Для информации, пожалуйста, прочитайте эту статью http://technet.microsoft.com/en-us/library/ms179331.aspx

0

Вы можете использовать PWDENCRYPT и PWDCOMPARE как @ Paresh J в своем комментарии во время нового использования пользователем вставки PWDENCRYPT как

Declare @Uname Varchar(250)='User2' 
Declare @Pwd Varchar(250)='password' 

Declare @UserTbl Table 
(
id int identity(1,1), 
Uname Varbinary(250), 
Pwd Varbinary(250) 
) 

Insert Into @UserTbl(Uname,Pwd) 
select PWDENCRYPT(@Uname),PWDENCRYPT(@Pwd) 

и при входе в систему этого пользователя PWDCOMPARE, как

Declare @UnameEncr Varbinary(max) 
Declare @PwdEncrypt Varbinary(max) 

Select @UnameEncr=Uname,@PwdEncrypt=Pwd from @UserTbl where id=1 

Select LoginMessage=Case When PWDCOMPARE(@Uname,@UnameEncr)=1 
           and PWDCOMPARE(@Pwd,@PwdEncrypt)=1 
           Then 'Correct Username/Password' 
           else 'Incorrect Username/Password' end