1、Md5加密算法步骤:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MyAlgorithm {
//把字节转换成16进制字符串
public static String toHexString(byte [] bytes){
//1、定义需频繁对字符串进行拼接的变量
StringBuilder sb = new StringBuilder("");
for (int i=0; i < bytes.length; i++){
//把字节数组的每个元素与255进行与操作
int j = bytes[i] & 0xFF;
//与操作后的整数转换成16进制字符串
String s = Integer.toHexString(j);
//16个元素的数组,每个元素都是2位,才能得到32位,如果元素不足2位则需补0
if (s.length()<2){
sb.append(0);
; }
//每个元素都进行拼接
sb.append(s);
}
return sb.toString();
}
public static String md5(String str) throws NoSuchAlgorithmException {
// 1、获取指定摘要算法的实例(MessageDigest是抽象类不能不实例化)
MessageDigest md = MessageDigest.getInstance("MD5");
// 2、 把要加密的字符串转化成字节数组,因为摘要算法是对字节数组摘要的
byte[] bytes = str.getBytes();
// 3、更新摘要算法
md.update(bytes);
// 4、对字节数组进行摘要,返回的是16个元素的字节数组
byte[] bytes1 = md.digest(bytes);
// 5、把字节数组转化成16进制的字符窜
return toHexString(bytes1);
}
public static void main(String[] args) throws NoSuchAlgorithmException {
System.out.println( MyAlgorithm.md5("abcd1234"));
}
}