본문 바로가기

운동하는 개발자/Java

java file md5 checksum / 자바 파일 md5 체크썸

728x90

MD5는 과거 128비트 암호화 해시함수로 사용되었으나 암호화 결함 오류로인해 암호화에는 사용되지 않고 파일의 무결성 검사에 주로 사용되고 있다 나도 그 용도로 사용중에 있다

	public static byte[] createChecksum(String filename) throws Exception {
        InputStream fis =  new FileInputStream(filename);

        byte[] buffer = new byte[1024];
        MessageDigest complete = MessageDigest.getInstance("MD5");
        int numRead;

        do {
            numRead = fis.read(buffer);
            if (numRead > 0) {
                complete.update(buffer, 0, numRead);
            }
        } while (numRead != -1);

        fis.close();
        return complete.digest();
    }

    public static String getMD5Checksum(String filename) throws Exception {
        byte[] b = createChecksum(filename);
        String result = "";

        for (int i=0; i < b.length; i++) {
            result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
        }
        return result;
    }

 

복붙으로 가져다 넣고 getMD5Checksum(파일경로+파일명)으로 호출해서 사용하면 된다

 

 


참고 : ko.wikipedia.org/wiki/MD5

참고2 : stackoverflow.com/questions/304268/getting-a-files-md5-checksum-in-java

 

틀린내용이나 질문은 댓글남겨주세요

728x90