[mysql,mariaDB] 컬럼 암호화, 복호화

by 조쉬 posted Nov 25, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

[mysql,mariaDB] 컬럼 암호화, 복호화

 

INTRO

 

 

클라이언트의 요청사항 : 기존 테이블의 컬럼을 암호화 하고싶어요!! 중요한 자료이니깐요!!

작업 내용 : INSERT, UPDATE 시 암호화, SELECT시 복호화

사용 기능 : AES 암복호화

바로 시작합니다.

 

CONTENTS

 

 

 

varchar타입은 단순한 문자열을 저장하는 타입으로 암호화된 내용을 저장하려고하면 incorrect string value 에러가 뜹니다.

일단 varchar로 되어있던 기존의 컬럼을 blob로 바꾸도록 하겠습니다.

1
ALTER TABLE 테이블명 MODIFY 컬럼명 blob;

 

암호화

1
AES_ENCRYPT('암호화할 내용',SHA2('key',512))

 

복호화

1
AES_DECRYPT(암호화된컬럼명,SHA2('key',512))

 

기본적인 코드는 위와 같습니다.

다만 한글을 저장 할경우 인코딩이 맞지 않아 SELECT가 잘 되지 않을 경우가 있으니 CONVERT함수를 넣어줍니다.

1
CONVERT(AES_DECRYPT(암호화된컬럼명,SHA2('key',512))using euckr) 컬럼명

 


Sketchbook5, 스케치북5

Sketchbook5, 스케치북5