校验数据的完整性,校验数据完整性,使用MD5/SHA算法校
使用MD5/SHA算法校验数据的完整性package cn.itcast.gz;import java.io.File;import java.io.FileInputStream;import java.security.DigestInputStream;import java.security.MessageDigest;/** * 主要用于验证数据的完整性,可以为数据创建“数字指纹”(散列值),结果具有唯一性 * 并且计算结果不可逆 * */public class DigestInputStreamTest { public static void main(String[] args) throws Exception{ MessageDigest messageDigest = MessageDigest.getInstance("MD5"); //MessageDigest messageDigest = MessageDigest.getInstance("SHA"); FileInputStream inputStream = new FileInputStream(new File("F:\\\\apache-tomcat-7.0.32.zip")); DigestInputStream digestInputStream = new DigestInputStream(inputStream, messageDigest); digestInputStream.on(true); byte[] buffer = new byte[1024]; int len = 0; //流读入 while((len=digestInputStream.read(buffer))!=-1) { digestInputStream.read(buffer, 0, len); } byte[] result = messageDigest.digest(); System.out.println( bytes2HexString(result)); inputStream.close(); digestInputStream.close(); } /** *把字节数组转换为16进制的形式 * @param b * @return */ public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } ret += hex.toUpperCase(); } return ret; }}//该片段来自于http://byrx.net