프로그래밍 TIP/ASP

[ASP] MS-SQL DB 에서 필드 암호화 작업

여름나라겨울이야기 2010. 2. 18. 14:08
728x90

   '// MS-SQL  의 내장 함수 사용
   '// pwdencrypt : 암호화
   '// 참고: http://msdn.microsoft.com/ko-kr/library/dd822792.aspx
   '// pwdcompare: 주어진 값과 암호화된 필드 비교
   '// 참고: http://msdn.microsoft.com/ko-kr/library/dd822791.aspx
   '// 기타보안함수 참고: http://msdn.microsoft.com/ko-kr/library/ms186236.aspx

   
   '// START: 사전 작업
   '// 해당 테이블의 해당 필드는 varbinary(256) 으로 가정
   '// FINISH: 사전 작업

   
   '// START: 암호화된 필드 내용 삽입
   SQL = ""
   SQL = SQL & " INSERT INTO 테이블명 "
   SQL = SQL & "    (     "
   SQL = SQL & "    Pwd   "
   SQL = SQL & "    )     "
   SQL = SQL & " VALUES    "
   SQL = SQL & "    (     "
   SQL = SQL & "    CAST(pwdencrypt('" & Pwd & "') AS varbinary(256))"
   SQL = SQL & "    )     "

   adoCn.Execute SQL, cnt
   '// FINISH: 암호화된 필드 내용 삽입


   '// START: 암호화된 필드 내용 갱신
   SQL = ""
   SQL = SQL & " UPDATE 테이블명 "
   SQL = SQL & " SET Pwd = CAST(pwdencrypt('" & Pwd & "') AS varbinary(256))"
   SQL = SQL & " WHERE Idx = " & Idx

   adoCn.Execute SQL, cnt
   '// FINISH: 암호화된 필드 내용 갱신


   '// START: 암호화된 필드 내용 비교
   SQL = ""
   SQL = SQL & " select pwdcompare"
   SQL = SQL & "        ('" & pwd & "', "
  SQL = SQL & "                 ("
   SQL = SQL & "                       select pwd from 테이블명 where uid = '" & uid & "'"
   SQL = SQL & "                )"
   SQL = SQL & "        )"  

   adoRs.Open SQL, adoCn

   adoRs(0) '// 1 이면 True, 0 이면 False
   '// FINISH: 암호화된 필드 내용 비교

반응형