MS-SQL에서 내부적으로 지원하는 문서화되지 않은 문자열 함수인 PWDENCRYPT와 PWDCOMPARE를 통해 암호화 기능을 구현할수 있다.
<사용예제>
' 테이블을 생성한다, 암호화할 컬럼은 VARBINARY 타입으로 한다.
CREATE TABLE MEMBER
(
UserId VARCHAR(25),
UserPwd VARBINARY(100)
)
' 데이터를 입력한다. 암호화할 컬럼은 PWDENCRYPT메소드를 이용해서 넣는다.
INSERT INTO MEMBER (UserId, UserPwd)
VALUES ('ssey', PWDENCRYPT('seyoung'))
' 해당아이디를 가진 회원의 암호화된 비밀번호 컬럼과 입력한 문자열 비밀번호를
' PWDCOMPARE(입력문자열, 컬럼명) 메소드를 이용해 비교한다.
' 둘이 같으면 1 (true), 틀리면 0 (false)를 리턴하게 된다.
' 그리고 원문이나 암호문 둘 중 하나가 NULL 이면 NULL을 리턴하게 된다.
SELECT PWDCOMPARE('SEYOUNG', UserPwd)
FROM MEMBER WHERE UserId='ssey' ' 결과 : 1
결과를 살펴보면 대소문자는 구분하지 않음을 알 수 있다. 암호문의 경우 위에서 살펴본대로 대소문자를 분명 다르게 비교하였으나, PWDCOMPARE 함수에서는 대소문자를 무시하였다.
또한, 실행 결과를 보면 형태는 원문의 길이에 상관없이 30~35자 사이의 거의 일정한 길이의 암호문을 출력하는 것을 볼 수 있다. 테스트 결과 원문의 길이가 varchar 기준으로 128자를 넘었을 경우 에러를 발생 하였다.
'ASP' 카테고리의 다른 글
| 초보도 만드는 IP 조회(ip locator) 페이지 구현 (0) | 2010/06/30 |
|---|---|
| [ASP블로그]ASP, RSS로 데이터 보내기 (0) | 2009/02/16 |
| ms-sql 컬럼내용 암호화 (0) | 2009/01/27 |
| SQL-INJECTION(인젝션) 차단하기. (0) | 2009/01/25 |
| 웹페이지 워드,엑셀,파워포인트로 변환 (0) | 2009/01/20 |

Prev

Rss Feed