赞
踩
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(); } }}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。