对文件或字符串进行MD5处理

<dependency>
    <groupId>org.apache.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>2.6.0</version>
</dependency>
public static String getMD5ByFile(File file) {// 这个可能不是很准
    FileInputStream fis = null;
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        fis = new FileInputStream(file);
        byte[] buffer = new byte[8192];
        int length = -1;
        System.out.println("开始算");
        while ((length = fis.read(buffer)) != -1) {
            md.update(buffer, 0, length);
        }
        System.out.println("算完了");
        return bytesToString(md.digest());
    } catch (IOException ex) {
        return null;
    } catch (NoSuchAlgorithmException e) {
        return null;
    } finally {
        try {
            fis.close();
        } catch (IOException ex) {
        }
    }
}

public static String textToMD5L32(String plainText) {
    String result = null;
    //首先判断是否为空
    if (StringUtils.isBlank(plainText)) {
        return null;
    }
    try {
        //首先进行实例化和初始化
        MessageDigest md = MessageDigest.getInstance("MD5");
        //得到一个操作系统默认的字节编码格式的字节数组
        byte[] btInput = plainText.getBytes();
        //对得到的字节数组进行处理
        md.update(btInput);
        //进行哈希计算并返回结果
        byte[] btResult = md.digest();
        //进行哈希计算后得到的数据的长度
        StringBuffer sb = new StringBuffer();
        for (byte b : btResult) {
            int bt = b & 0xff;
            if (bt < 16) {
                sb.append(0);
            }
            sb.append(Integer.toHexString(bt));
        }
        result = sb.toString();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return result;
}
发布者:songJian   点击数:826   发布时间:2018-01-10 01:08:49   更新时间:2018-07-09 18:49:06
正在加载评论...
相关文章