DataBase/MySQL

MySQL의 암호화 방법

ABCD 2023. 1. 24.

1. password 함수 사용

    • 단순히 비밀번호를 넘기기만 하면 자동적으로 mysql에서 함호화 코드로 변경하여 저장해주는 기능
    • 보안에 다소 취약함
1
password(str);
cs
 
2. SHA2
  • 대표적인 단방향 암호화로 해시 함수를 이용
  • 동일한 값이 입력되면 동일한 출력값을 보장
  • str → 암호화할 문자열
  • hash_length → 해시 함수 타입 (SHA-244,256,384,512)
1
SHA2(str, hash_length);
cs

3. AES

  • 대표적인 양방향 암호화 방식
  • 대칭키 알고리즘의 암호화 기능을 사용
  • 평문 → 암호화문, 암호화문 → 평문 가능
  • str → 암호화할 문자열
  • key_str → 암호화 키 (평문화시 사용), SHA2를 이용하여 암호화하는 것이 좋음
1
2
3
4
5
-- 암호화
AES_ENCRYPT(str, key_str);
 
-- 복호화
AES_DECRYPT(str, key_str);
cs
  • AES_ENCRYPT, AES_DECRYPT 사용시 문자가 깨지기 때문에 문자셋을 HEX함수를 통해 한번 변환
1
2
3
4
5
-- 암호화
INSERT INTO test VALUES('user01', HEX(AES_ENCRYPT('password',SHA2('key'256)));
 
-- 복호화
select user_id, AES_DECRYPT(UNHEX(password), SHA2('key'256)) from test;
cs
  • key_str의 값이 다른 데이터들은 NULL로 표시됨

 

728x90
반응형

'DataBase > MySQL' 카테고리의 다른 글

MySQL INSERT 후 Key값 가져오기  (0) 2023.02.08
MySQL에서 페이징 하기  (0) 2023.02.08
MySQL 암호화/복호화  (0) 2023.01.24
MySQL 데이터 타입(DataType)  (0) 2023.01.11
[Mac] Brew를 이용한 MySQL 설치  (0) 2022.12.22

댓글

💲 추천 글