• password 방식 사용하기
    • 장점 : 복호화 안됨 - DB를 털어가도 암호는 털리지 않습니다.
    • 단점 : 복호화 안됨
  • 적용 방법
    • 암호 text 데이터 업데이트 하기
      • Update 테이블명 Set 컬럼명=password(컬럼명) where no_id = 조건값

 

  • 사용법
    • 복호화가 불가능 하므로 현재 누군가 입력한 암호가 올바른지 아닌지를 돌려주는 방식으로 처리 합니다.
      • 암호와 id가 일치하면 1을 돌려주므로 정상적인 로그인인지 확인 가능합니다. 
      • select count(*) from 테이블명 where 아이디컬럼명 = ? and 패스워드컬럼명 = password(?) 

 

 

  • AES_ENCRYPT /  AES_DECRYPT 방식 사용하기
    • 장점 : 복호화 가능
    • 단점 : 키 값 누출 되면 모두 털릴 수 있음
  • 적용 방법
    • 암호 text 데이터 업데이트 하기
      • Update 테이블명 Set 암호컬럼명=HEX(AES_ENCRYPT('암호값', '암호만들 키값')) where no_id = 조건값

 

  • 사용법
    • 복호화가 가능하므로 복호화 하여 값을 돌려받게 됩니다. .
      • 암호와 id가 일치하면 1을 돌려주므로 정상적인 로그인인지 확인 가능합니다. 
      • select  아이디컬럼명 , AES_DECRYPT( UNHEX(암호컬럼명) , '암호만들 키값') as 암호컬럼명    from 테이블명 WHERE no_id = 조건값;

 

  • 오류 대응
    • 만약 정상적으로 검색했는데 BLOB로 값이 표시되면 변환이 필요합니다.

  • select  아이디컬럼명 , CONVERT(AES_DECRYPT( UNHEX(암호컬럼명) , '암호만들 키값') USING utf8) as 암호컬럼명    from 테이블명 WHERE no_id = 조건값;

 

+ Recent posts