[Back-end] MD5와 SHA의 차이

Geun·2022년 4월 12일
1

Back-end

목록 보기
53/74

MD5

MD5(Message Digest algorithm 5)는 128비트 암호화 해시 함수이다.
주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사등에 사용된다.

MD5는 메세지 축약 알고리즘으로 파일의 무결성 검사 용도로도 사용되며,
128비트의 해시함수를 이용해 암호화와 복호화를 하는데 사용된다.

다만 MD5에 결함이 발견되어 SHA로 사용하는 것을 권장하고 있다.


SHA

대표적으로 SHA(Secure Hash Algorithm)은 MD5보다는 안전한 특징이 있다.

무엇보다 MD5에는 심각한 보안 문제를 야기할 수 있다고 한다.
MD5에서 공격방법도 있으며, 다른 데이터에서의 해시 값이 같은 "Collision" 문제도 존재한다.
이것은 치명적인 결함으로 SHA사용을 권장하고 있다.

SHA 알고리즘은 MD5보다 느리다고 한다.

SHA-256

SHA-256은 SHA 알고리즘의 한 종류로서 256비트의 해시 값을 생성하는 해시 함수이다.
SHA-256은 미국의 국립표준기술연구소(NIST)에 의해 공표된 표준 해시 알고리즘인 SHA-2 계열 중 하나이며 블럭체인에서 가장 많이 채택되어 사용된다.


Hash와 Encryption의 차이

해시

해시가변길이의 데이터를 해시 함수를 사용해 고정 길이의 해시 값을 만들어 내는 방법이다.
만약 해시의 값이 다르다면 그 해시 값을 만들기 위해 사용했던 원래의 데이터도 달라야한다.
또 해시값에서 원래의 데이터를 구하는 것은 매우 어려운 일이다.

암호화

암호화복호화(Decryption)을 할 수 있는 Key를 소유하고 있는 사람을 제외하고 나머지 사람은 원래의 데이터를 읽어볼 수 없도록 암호화 알고리즘을 이용해 데이터를 전달하는 것이다.
암호화된 정보는 복호화해서 다시 원래의 데이터를 구할 수 있다.

암호화를 통해 생성된 값은 복호화를 통해 원래의 데이터를 알 수 있지만, 해시를 통해 만들어진 고정된 길이의 해시 값은 원래의 데이터를 알 수 없다.


참고자료

https://ksbsite.tistory.com/12
https://jongmin92.github.io/2019/12/18/Java/hash/

0개의 댓글