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 |
댓글