woowacourse-study / 2022-Real-MySQL

⚡️토르⚡️의 짜릿한 Real MySQL 뽀개기 🔨
9 stars 3 forks source link

암호화 및 해시 함수 #32

Open injoon2019 opened 2 years ago

injoon2019 commented 2 years ago

주제

암호화 및 해시 함수

선정 이유

현재 프로젝트를 진행하면서 암호화에 대한 고민을 하고 있다. 이걸 당연히 서버에서 해줘야한다고 생각했는데 DB에서도 할 수 있는걸 알게되어서 생각중이다.

해당 텍스트

SHA() 함수는 SHA-1 암호화 알고리즘을 사용하며, 결과로 20바이트 해시값을 반환한다. SHA2 함수는 SHA 암호화 알고리즘보다 강력한 알고리즘을 사용한다. MD5() 함수는 메시지 다이제스트 알고리즘을 사용해서 16바이트 해시 값을 반환한다.

MD5 함수는 말 그대로 입력된 문자열의 길이를 줄이는 용도로도 사용된다. 암호화된 값을 저장해두기 위해 MD5() 함수는 CHAR(32), SHA() 함수는 CHAR(40)의 타입을 필요로 한다.

MD5() 함수나 SHA(), SHA2() 함수는 모두 비대칭형 암호화 알고리즘이다. 이 함수들의 결과값은 중복 가능성이 매우 낮기 때문에 길이가 긴 데이터를 크기를 줄여서 인덱싱(해싱)하는 용도로도 사용된다. 예를 들어, URL 같은 값은 1KB를 넘을 때도 있으며 전체적으로 값의 길이가 긴 편이다. 해싱된 16바이트로 인덱스를 생성하면 상대적으로 효율적이다.

관련 페이지

p.42