| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SQL Server
- node.js
- Eclipse
- STS
- 정보처리기사
- Oracle
- js
- Linux
- my sql
- TIP
- html
- programmers
- jquery
- windows
- Java
- reCAPTCHA
- svn
- spring
- IntelliJ
- javascript
- mybatis
- maria db
- dbeaver
- mysql
- devlog
- SQL
- shorturl
- Tomcat
- urlshortner
- Mac
- Today
- Total
고양의 성장일기
[MySQL] MySQL, Maria DB에서 단방향 암호화 하기 본문
MySQL, Maria DB에서 컬럼 단방향 암호화 하기
이전에 Maria DB에서 AES 대칭키 방식 이용해 특정 문자열을 암,복호화 하는 예제를 포스팅했었습니다.
이번에는 해싱 방식으로 문자열을 암호화하는 몇 가지 방법을 알아보도록 하겠습니다.
단방향 암호화에 쓰일 함수
MD5 : MD5 해시 알고리즘을 사용하여 32자리의 16진수 문자열로 변환합니다.
SHA1 : SHA-1 해시 알고리즘을 사용하여 40자리의 16진수 문자열로 변환합니다.
SHA2 :SHA-2 해시 알고리즘을 사용하여 해시화합니다.
암호화하기
먼저 MD5 함수를 이용한 문자열입니다.
16진수로 이루어진 32자리 문자열이 생성되었습니다.
SELECT
MD5('NOT_ENCODED_WORDS') AS 'ENCODED'

이어서 SHA1 함수를 이용해 암호화한 문자열입니다. 40자리 문자열이 생성되었습니다.
SELECT
SHA1('NOT_ENCODED_WORDS') AS 'ENCODED'

SHA2 함수의 경우 문자열과 해시 알고리즘의 출력 길이를 매개변수로 제공해서 출력 해시 길이(비트 수)를 설정할 수 있습니다.
SELECT
SHA2('NOT_ENCODED_WORDS', 224) AS 'sha224',
SHA2('NOT_ENCODED_WORDS', 256) AS 'sha256',
SHA2('NOT_ENCODED_WORDS', 384) AS 'sha384',
SHA2('NOT_ENCODED_WORDS', 512) AS 'sha512'


MariaDB의 SHA2 함수는 SHA-224, SHA-256, SHA-384, SHA-512 네 가지 변형을 지원합니다.
이 외의 임의의 숫자를 매개변수로 사용하면 NULL이 반환되니 주의해야합니다.
| hash_length | 값내부 알고리즘 | 출력 길이(16진수 문자 수) | 비고 |
| 224 | SHA-224 | 56자 | SHA-2 계열 중 가장 짧음 |
| 256 | SHA-256 | 64자 | 일반적으로 가장 많이 사용됨 |
| 384 | SHA-384 | 96자 | 더 강한 보안 |
| 512 | SHA-512 | 128자 | 가장 강력한 SHA2 옵션 |
| 기타 (예: 128, 1024 등) | ⚠️ NULL 반환 | 지원되지 않음 |
마치며
이 전의 양방향 암호화 방법에 이어 단방향 암호화 방법도 가볍게 알아봤습니다.
단방향 암호화는 이름과 같이 복호화가 불가능하기 때문에 입력받은 값의 암호화 결과를 비교하는 방식으로 활용해야 합니다.
참고로 단방향 암호화된 결과물을 의미하는 다이제스트(digest)는 섭취한 음식물을 흡수하기 위해 분해하는 소화 기관에 일어나는 소화 작용을 의미하기도 합니다.
그러니까, 단방향 암호화란 한 번 소화되어 응아가 된 건 다시는 음식으로 되돌아갈 수 없다는

감사합니다!
'🖧 Database > MySQL | MariaDB' 카테고리의 다른 글
| [MySQL] MySQL, MariaDB에서 Merge 구문 구현하기 (3) | 2024.12.24 |
|---|---|
| [MySQL] MySQL, Maria DB에서 양방향 암호화 하기 (0) | 2024.11.04 |
| [MySQL] MySQL, Maria DB에서 날짜를 구하는 다양한 방법 (0) | 2024.10.30 |
| [MySQL] DATE_ADD와 DATE_SUB로 날짜 계산하기 (2) | 2024.10.21 |
| [My SQL] My SQL 설치하기 (0) | 2023.09.11 |