java计算字符串md5值_java语言MD5加密字符串,计算文件的MD5值

package org.xqlee.utils.security;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.math.BigInteger;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

/**

*

*

*

 
 

* _________________________INFO_____________________________

* Description : [MD5加密工具类]

* Encoding : [UTF-8]

* Package : [org.xqlee.utils.md5]

* Project : [utils]

* Author : []

* CreateDate : []

* Updater : []

* UpdateDate : []

* UpdateRemark: []

* Company : [Shallink Electronic Information]

* Version : [v 1.0]

* __________________________________________________________

*

*/

public class MD5Util {

/**

* 加密一个输入字符串

*

* @param visibleString

* 输入一个可见的明码

* 类型:java.lang.String

* @return 一个加密后的MD5值

* 通常用于密码加密

* @throws NoSuchAlgorithmException

*/

public static String getEnMD5String(String visibleString) throws NoSuchAlgorithmException {

MessageDigest md5;

// 生成一个MD5加密计算摘要

md5 = MessageDigest.getInstance("MD5");

// 计算md5函数

md5.update(visibleString.getBytes());

// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符

// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的 值

String pwdStr = new BigInteger(1, md5.digest()).toString(16);

return pwdStr;

}

/**

* 计算文件MD5值

*

* @param file

* 输入一个文件参数

* 类型:java.io.File

* @return 该文件的MD5值

* 类型:java.lang.String

* @throws IOException

* IO异常

* @throws NoSuchAlgorithmException

* MD5获取实例异常

*/

public static String getMd5ForFile(File file) throws IOException, NoSuchAlgorithmException {

FileInputStream in = null;

in = new FileInputStream(file);

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

byte[] cache = new byte[2048];

int len;

while ((len = in.read(cache)) != -1) {

md5.update(cache, 0, len);

}

in.close();

BigInteger bigInt = new BigInteger(1, md5.digest());

return bigInt.toString(16);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值