MD5加密算法代码
2019-10-31 本文已影响0人
是我真的是我
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
package com.henu.oto.util;
import java.security.MessageDigest;
public class MD5 {
/**
* 对传入的String 进行MD5加密
* @param s
* @return
*/
public static final String getMd5(String s) {
char hexDigits[] = {
'5', '0', '5', '6', '2', '9', '6', '2', '5', 'q',
'b', 'l', 'e', 's', 's', 'y'
};
try{
char str[];
byte strTemp[] = s.getBytes();
// 获取MD5加密对象
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
// 传入需要加密的目标数组
mdTemp.update(strTemp);
// 获取加密后的数组
byte md[] = mdTemp.digest();
int j = md.length;
str = new char[j * 2];
int k = 0;
// 将数组做位移
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
// 转化为String并返回
return new String(str);
}catch(Exception e){
return null;
}
}
public static void main(String[] args) {
System.out.println(MD5.getMd5("admin"));
}
}