메뉴 건너뛰기

XEDITION

study

Mysql에서 지원하는 데이터 암호화 기법

proin 2018.09.19 21:14 조회 수 : 0

http://sopie2000.tistory.com/m/10


※ Mysql에서 지원하는 데이터 암호화 기법

 

 

데이터 암호화 방법

 

 

  단방향 암호화

 - MD5, SHA1 같은 방법으로 암호화(Encrypt)후 원래대로 복호화(Decrypt)가 필요없는 경우
- EX) 패스워드, 주민번호(복호화 불필요시) 등

 쌍방향 암호화

  - DES, DES3, ENC, COMPRESS 같은 방법으로 암호화(Encrypt)후
  원래대로 복호화(Decrypt)가 필요한 경우
- EX) 이름, 아이디, 주민번호 (나이계산, 생일), 메일주소, 주소,닉네임, 나이,생일 등

 

 

 

암호화를 하면 데이터의 길이가 늘어나므로 데이터의 Length를 늘려주어야 한다.  실제 데이터의 Length가  암호화된 데이터에 길이보다 짧다면 짤려서 삽입된다.

 

 

MYSQL에서 지원하는 암호화 함수

 

 

 

 

단방향 암호화만 지원

 

- MD5, PASSWORD. SHA1, SHA

쌍방향 암호화 (암호화,복호화) 지원

 

- AES_ENCRYPT ,AES_DECRYPT 

- DES_ENCRYPT ,DES_DECRYPT

- DECODE, ENCODE

- COMPRESS, UNCOMPRESS

 



 

 ex) 단방향 암호화중  PASSWORD 함수 테스트

 

 

 

암호화

INSERT INTO 테이블명 (필드명VALUES (PASSWORD('암호화 할 내용'))

 

복호화를 할 수 없기 때문에 조회시에는 해당 데이터를 암호화하여  컬럼에 데이터값과 비교하며 검증할 수 있다.

 

      

 


 ex) 쌍방향 암호화 중 AES_ENCRYPT, AES_DECRYRT 함수를 통한 암호화, 복호화 테스트

삽입할 때에는 암호화된 바이너리 데이터를 HEX로 변환시켜 넣고, 가져올 때는 HEX를 풀고 복호화함.

 

 

 

 

암호화
INSERT INTO 테이블명 (필드명) VALUES (HEX(AES_ENCRYPT('문자열', '암호화 키')));

복호화
SELECT AES_DECRYPT(UNHEX(필드명), '암호화 키') FROM 테이블명;

 

 

위로