반응형
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 메서드 소스코드
반응형
'프로그래밍 > 초보자를 위한 Java프로그래밍' 카테고리의 다른 글
자바 에러 코드 java.lang.NumberFormatException (0) | 2021.10.01 |
---|---|
JAVA GC(가비지 컬렉션) 정리 (0) | 2021.10.01 |
첨부파일 한글 깨짐 확인 fileupload (0) | 2021.10.01 |
Java - 개요 (0) | 2021.04.18 |
Java - 환경 설정 (0) | 2021.04.18 |