Java中的MD5加密
程序员文章站
2024-03-19 11:47:22
...
JAVA中的MD5加密
在java.security包中实行Java内部的MD5加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public final class MD5 {
public static String encrypt(String strSrc) {
try {
// 16进制的所有字符数组
char hexChars[] = { '0', '1', '2', '3',
'4', '5', '6', '7', '8','9', 'a', 'b', 'c',
'd', 'e', 'f' };
// 输入的字符串转换成字节数组
byte[] bytes = strSrc.getBytes();
// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
MessageDigest md = MessageDigest.getInstance("MD5");
// bytes是输入字符串转换得到的字节数组,使用指定字节更新摘要
md.update(bytes);
// 转换并返回结果,也是字节数组,包含16个元素
bytes = md.digest();
// 取出字节数组的长度
int j = bytes.length;
// 并创建一个字符数组,容量是其2倍 32
char[] chars = new char[j * 2];
// 定义一个数组的下标记录数
int k = 0;
for (int i = 0; i < bytes.length; i++) {
byte b = bytes[i];
// 将每个数b进行双字节加密
// 不带符号右移4位,移位处补0 & 十六进制的f 即 高四位清空 取低四位的值
chars[k++] = hexChars[b >>> 4 & 0xf];
chars[k++] = hexChars[b & 0xf];
}
// 返回加密后的字符串
return new String(chars);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new RuntimeException("MD5加密出错!!+" + e);
}
}
public static void main(String[] args) {
System.out.println(MD5.encrypt("111111"));
}
}
下一篇: md5用途简介