package practice1;


import java.io.FileInputStream;

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 extends Thread{

private String filename;


public practice(String filename){

this.filename = filename;

}

public void run(){

FileInputStream in;

FileOutputStream out;

try{

in= new FileInputStream(filename); //파일 입력 

out = new FileOutputStream(filename+"1");

MessageDigest sha = MessageDigest.getInstance("SHA-256"); //SHA-256 hash값 생성

DigestInputStream din = new DigestInputStream(in, sha); //지정된 입력 Stream과 메세지 다이제스트를 사용해, 다이제스트를 입력하는 Stream을 작성합니다.

din.close();

byte[] digest = sha.digest(); //암호된 다이제스트를 digest byte 배열 안에 삽입

StringBuilder result = new StringBuilder(filename);

result.append(": ");

result.append(DatatypeConverter.printHexBinary(digest)); // byte 배열을 hex 문자열로 형변환

System.out.println(result);

}catch(IOException ex){

ex.printStackTrace();

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

}catch (NoSuchAlgorithmException ex){

ex.printStackTrace();

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

}

}

public static void main(String args[]){

Thread t = new practice("practice1.txt");

t.start();

}

}





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