Runnable을 사용한 MD5 다이제스트 생성방법


package practice1;


import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.security.DigestInputStream;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;


import javax.xml.bind.DatatypeConverter;


public class practice implements Runnable{

private String filename;


public practice(String filename){

this.filename = filename;

}

public void run(){

FileInputStream in; // 해제 패턴

try{

in = new FileInputStream(filename);

MessageDigest sha = MessageDigest.getInstance("MD5"); //MD5 다이제스트 생성

DigestInputStream din = new DigestInputStream(in,sha);

while(din.read() != -1);

din.close();

byte[] digest = sha.digest();

StringBuilder result = new StringBuilder(filename);

result.append(": ");

result.append(DatatypeConverter.printHexBinary(digest));

System.out.println(result);

}catch (NoSuchAlgorithmException ex){

ex.printStackTrace();

System.err.println(ex.getMessage());

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String args[]){

practice prac = new practice("practice1.txt");

Thread t = new Thread(prac);

t.start();

}

}


Runnable을 사용하면 


Thread를 사용할때 보다 더 좋은 이유는 다른 서브 클래스를 상속 받을 수 있기 때문이다.


practice1.txt

- thisiskey


result view

'JAVA > 자바 네트워크 프로그래밍' 카테고리의 다른 글

sha 256 다이제스트 생성(Thread)  (0) 2016.12.24
Runnable을 사용한 MD5 다이제스트 생성방법  (0) 2016.12.24
HTTP  (0) 2016.12.24
URL 그리고 URI, Proxy  (0) 2016.12.24
소켓 통신 (어플리케이션)  (0) 2016.12.24
UDP 통신  (0) 2016.12.24

+ Recent posts