欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

校验数据的完整性,校验数据完整性,使用MD5/SHA算法校

来源: javaer 分享于  点击 23921 次 点评:47

校验数据的完整性,校验数据完整性,使用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
相关栏目:

用户点评