개발자의 끄적끄적

[sql/mysql] 암호화 복호화 방법 / AES_ENCRYPT, AES_DECRYPT 사용법 및 예제 본문

개발/sql

[sql/mysql] 암호화 복호화 방법 / AES_ENCRYPT, AES_DECRYPT 사용법 및 예제

효벨 2021. 3. 21. 03:00
728x90
반응형

[sql/mysql] 암호화 복호화 방법 / AES_ENCRYPT,  AES_DECRYPT 사용법 및 예제

 

 

mysql 에서

 

데이터를 암호화 해야하는 경우

 

상당히 많습니다.

 

그중에 복호화도 되어야 하는 경우도 있는데요,

 

특정 키값을 가지고 암호화 및 복호화를 하는 함수를 공유하고자 합니다.

 

AES_ENCRYPT / AES_DECRYPT 함수입니다.

 

 

 

기본 사용법은 아래와 같습니다.

insert into test (name) values (HEX(AES_ENCRYPT('abc','KEY VALUE')));

 

AES_ENCRYPT 에 암호화할 내용과 키값을 넣어서 데이터를 입력하면 아래처럼 출력됩니다.

insert into test (name) values (HEX(AES_ENCRYPT('abc','key')));
// result : DB5F149A7CAF0CD275CA18C203A212C9

 

 

위처럼 AES_ENCRYPT 를 사용하여 암호화된 데이터를 조회하는 방법은 아래와 같습니다.

SELECT AES_DECRYPT(UNHEX(COLUMN_NAME), 'KEY VALUE') FROM tbname;

 

 

AES_DECRYPT 를 이용하여 똑같이 복호화하고자 하는 필드와

 

암호화할때 넣었던 값과 동일한 key 값을 넣어주면 아래처럼 결과가 출력됩니다!

SELECT AES_DECRYPT(UNHEX(name), 'key') FROM test;
// result : abc

 

키가 맞지 않으면 데이터가 null 로 출력됩니다!

 

참고들 하세요!

반응형
Comments