digestinput.java

来自「密码学中的JAVA例子」· Java 代码 · 共 59 行

JAVA
59
字号
import java.io.*; 

import java.security.*; 

public class DigestInput 
{ 

	public static void main(String[] args) throws Exception
	{ 

		String fileName = "test.txt"; 

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

		FileInputStream fin = new FileInputStream(fileName); 

		DigestInputStream din = new DigestInputStream(fin,md);//构造输入流 

		//DigestOutputStream dout = new DigestOutputStream(fout,md); 

		//使用输入(出)流可以自己控制何时开始和关闭计算摘要 

		//也可以不控制,将全过程计算 

		//初始时是从开始即开始计算,如我们可以开始时关闭,然后从某一部分开始,如下: 

		//din.on(false); 

		int b; 

		while((b=din.read())!=-1)
		{ 

			//做一些对文件的处理 

			//if(b=='$') din.on(true); //当遇到文件中的符号$时才开始计算 

		} 

		byte[] re = md.digest();//获得消息摘要 

		//下面把消息摘要转换为字符串 

		String result = ""; 

		for(int i=0;i<re.length;i++)
		{ 

			result += Integer.toHexString((0x000000ff&re[i])|0xffffff00).substring(6); 

		} 

		System.out.println(result); 

	} 

} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?