더북(TheBook)

4.6.1 FactoryBean(s) 예제: MessageDigestFactoryBean

진행중인 프로젝트에서 암호화 처리가 필요할 때가 종종 있습니다. 일반적으로 이때는 메시지 다이제스트(message digest)를 생성하거나 사용자의 비밀번호를 데이터베이스에 저장할 때 해시(Hash) 함수로 단방향 암호화합니다. 자바에서는 임의의 데이터로 해시 값을 얻으려 할 때 MessageDigest 클래스가 제공하는 기능을 사용합니다. MessageDigest 자체는 추상 클래스이므로 이를 사용하고자 할 때는 MessageDigest.getInstance() 메서드를 호출하면서 사용하려는 해시 알고리즘의 이름을 인수로 전달해 원하는 구현체 인스턴스를 얻습니다. 예를 들어 해시 값을 얻을 때 MD5 알고리즘을 사용하려면 다음 코드를 사용해 MessageDigest 인스턴스를 생성합니다.

예제 4-23 MD5 MessageDigest 인스턴스 가져오기

MessageDigest md5 = MessageDigest.getInstance("MD5");

 

Note 원문에서는 해시 값을 메시지 다이제스트(Message Digest)라고 표현했습니다. 메시지 다이제스트란 데이터 무결성을 보장하려고 원본 메시지를 특정한 고정 크기 블록으로 만드는 작업을 말하며, 이는 해시 함수의 결과값입니다. 메시지를 수신하는 쪽에서는 원본 파일과 함께 받은 이 고정 블록을 바탕으로 전송받은 원본 파일에 문제가 없는지 확인합니다. MD5, SHA 계열과 같은 해시(Hash) 함수가 이런 역할을 담당합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.