본문 바로가기

프로그래밍/초보자를 위한 Java프로그래밍

JAVA MD5, SHA-256 해쉬코드 얻기

반응형
JAVA MD5, SHA-256 해쉬코드 얻기

얼마전 천만건이 넘는 문장의 중복을 체크해야 되는 작업을 진행하였다. 중복 체크 알고리즘들은 많이 있지만, 문제는 중복을 확인하기 위해서는 그 모든 문장들을 메모리에 올려야 하는데, 그 많은 데이터가 다 올라가느냐였다. 문장의 길이가 워낙 긴게 많아서…

결국 문장을 MD5 해쉬 값으로 바꾸어 중복을 체크함으로써 이문제를 해결 할 수 있었다.

 

MD5 (Message-Digest algorithm 5)

MD5는 메세지 축약 알고리즘으로써, 파일 무결성 검사용도로 많이 쓰이고 있다.

128bit 의 해쉬를 제공하며, 암호와와 복호화를 통하여 보안용도로도 많이 쓰인다.

하지만 암호화 결함이 발견되어 보안 용도로 사용할때에는 SHA와 같은 다른 알고리즘을 사용하는것이 권장되고 있다고 한다.

또한, 자바에서는 현재 복호화를 할 수 있는 방법은 없는듯하다. 자바에서 사용회는 MD5는 해시 함수로써, 기본적으로 복호화를 목적으로 하지 않는다는 것이 이유중에 하나라고도 한다. (뭐, 사실 방법이야 있겠지만, 나는 모르겠다)

 

SHA-256 (Sechre Hash Standard)

MD5와 뭐 거의 동일하지만 160bit 의 해쉬를 제공한다. SHA는 256 뿐만아니라, SHA-0, SHA-1 과 같이 여러 암호학적 해쉬가 존재한다.

자바에서 MD5 와 SHA의 사용은 매우 쉽다. 바로, MessageDigest 클래스를 사용하면 된다

MD5 와 SHA-256 메서드 소스코드

 

반응형