您的位置:首页 > 编程语言 > Java开发

java实现MD5算法加密

2017-11-28 20:43 369 查看
1、MD5算法原理:待加密数据长度除以512取于是否等于448,如果不等于448则进行填充,直到除以512取于等于448,如果刚刚等于448也要进行填充。然后用剩下的64位去保存数据,则总长度为(n+1)* 512。最后把512分成4组,每组128位,让每组去进行逻辑运算,转换为16进制得到32位固定字符串,循环次数为n+1。

2、java代码实现:

//加密

public class TestMD5 {



public static String testMD5(String data)throws Exception{
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(data.getBytes("utf-8"));
byte[] digest = md5.digest();
//一个字节8位,可以转化为2个16进制数
StringBuilder sb = new StringBuilder();
for (int i = 0; i < digest.length; i++){
char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F' };
char[] chars = new char[2];
chars[0] = Digit[(digest[i] >>> 4) & 0x0F] ;
chars[1] = Digit[(digest[i]) & 0x0F];
String str = new String(chars);
sb.append(str);
}
return sb.toString();
}

//main方法

public static void main(String[] args) {
String data = "加密数据";
try {
String dataMD5 = testMD5(data);
System.out.println("使用MD5加密后的数据:" + dataMD5);
} catch (Exception e) {
e.printStackTrace();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java md5 加密