Java에서 주어진 파일에 대한 MD5 체크섬을 얻는 방법은 무엇입니까? Apache Common의 DigestUtils.md5Hex 유틸리티를 사용하는 방법은 무엇입니까?

게시 됨: 2021-08-28
Java에서 주어진 파일에 대한 MD5 체크섬을 얻는 방법은 무엇입니까? commons-codec의 DigestUtils.md5Hex 사용

엔터프라이즈 애플리케이션의 보안을 강화하는 것은 모든 조직의 가장 큰 과제입니다.

다음과 같은 실제 프로덕션 시나리오를 고려하십시오.

  1. 파일 reads the value 응용 프로그램이 있습니다.
  2. 파일 값을 기반으로 추가/삭제/실행과 같은 performs some operations .
  3. 이 애플리케이션을 프로덕션 환경에 배포했습니다.
  4. unauthorized person 이 사용자 모르게 해당 파일 changes the value 어떻게 됩니까?
  5. 응용 프로그램 simply gets new value unexpected outcome 를 초래할 수 있는 논리를 실행합니다.
  6. 해당 파일에 대해 MD5 체크섬을 활성화한 경우 - 명확한 오류 메시지와 함께 could have created an exception you could have prevented disaster

MD5 체크섬이란 무엇입니까?

파일에 대한 MD5 체크섬은 파일의 지문과 같은 128-bit value 입니다. 파일과 무결성 제어를 비교하는 데 모두 유용할 수 있습니다.

다른 파일에 대해 동일한 값을 얻는 것은 거의 불가능합니다. 이 튜토리얼에서는 주어진 파일에 대한 MD5 값을 생성하고 반환하는 간단한 자바 프로그램을 만들 것입니다. 우리의 경우 index.php 파일입니다.

시작하자:

1 단계

공개 클래스 CrunchifyGetMD5ForFile.java 만들기

2 단계

프로젝트의 pom.xml 파일에 아래 두 개의 maven 종속성을 가져옵니다. 프로젝트를 maven 프로젝트로 변환하는 튜토리얼.

우리는 commons-codeccommons-io 라이브러리를 사용하고 있습니다.

3단계

DigestUtils.md5Hex 유틸리티를 사용하여 MD5 체크섬을 만들고 콘솔에 결과를 인쇄합니다.

DigestUtils.md5Hex => encodeHex 구현

다음은 전체 프로그램입니다.

crunchifyGetMd5ForFile.java 클래스 생성

위의 프로그램을 Java 응용 프로그램으로 실행하면 이와 유사한 결과를 볼 수 있습니다.

IntelliJ IDEA 콘솔 결과:

파일 무결성을 확인하기 위해 런타임에 이 MD5 체크섬을 어떻게 사용하시겠습니까?

런타임 시 이 MD5 체크섬을 MySQL, Oracle 등과 같은 y0ur 데이터베이스에 저장된 값과 비교할 수 있습니다.

동일한 결과를 얻을 수 있는 다른 방법이 많이 있지만 이에 대해서는 향후 자습서에서 논의할 것입니다.