JAVA系统自带有消息摘要类,可以直接采用,但是结果只有字节数组,需要进一步处理,才能得到MD5加密后的字符串:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public String getHash(String source,String hashType){
//用于将字节转换成16进制字符
char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try{
//获取消息摘要的实例
MessageDigest md = MessageDigest.getInstance(hashType);
//更新实例,处理需要转换的字符串为字节数组
md.update(source.getBytes());
//获得摘要字节数组
byte[] encryptStr=md.digest();
//存放结果字符的数组
char str[]=new char[32];
//转换结果对应字符串中位置
int k=0;
//每个字节转换成16进制字符
for(int i=0;i<16;i++){