2011-11-15 2 views
0

나는 새 로그인 계정을 삽입 할 때 그러나 나는 새 로그인 사용자 이름 아무튼 어떠했는지를 확인하려면 ENCRYPTBYPASSPHRASE암호화 된 사용자 이름이 SQL 데이터베이스에 존재하는지 확인

를 사용하여 암호화 된 사용자 이름과 암호를 모두 로그인라는 테이블을 가지고 ' 이미 존재한다.

사용자 이름이 이미 데이터베이스에 있는지 확인할 수 있습니까?

나는 select * from login where username = encryptbypassphrase('username', 'passphrase')과 같은 것을 시도했지만 부정적인 것으로 나왔습니다. 나는 이런 식으로 뭔가를 기대

+0

난 당신이 사용자 이름과 암호를 교환한다고 생각 http://technet.microsoft.com/en-us/library/ms190357.aspx –

+0

당신이 바로 그 점에 대해 감사합니다. 그러나이 예제/질문에서는 삽입하고 사용자가 있는지 확인하기 위해 동일한 암호화를 수행하기 때문에 중요하지 않습니다. –

+0

encryptopn의 결과를 어느 필드에 저장합니까? –

답변

0

사용합니다 : '이름 = encryptbypassphrase ('암호 ','사용자 이름 ')'를 참조하십시오 경우 로그인 SELECT * FROM :

--- For INSERT 
insert into login 
    (username, encryptedphrase) 
values 
    ('username', encryptbypassphrase('username', 'passphrase')) 

--- Checking a specific username, passphrase combination: 
select * 
from login 
where username = 'username' 
    and encryptedphrase = 
     encryptbypassphrase(username, 'passphrase') 

--- Checking if a specific username already exists: 
select exists 
     (select * 
     from login 
     where username = 'username' 
     ) userexists 
+0

사용자 이름이 암호화됩니다. 따라서 "username = 'username'"은 작동하지 않습니다. –

+0

그래서 실제로'encryptbypassphrase ('username', 'passphrase')'만 저장합니까? –

관련 문제