package com.cnse.pwdProtected.demo;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @author kxw
* java MD5 简单实现
* 这仅仅是的MD5最简单的列子 很容易破解 建议 加强算法规则 64位 key sha base64配置使用
*/
public class Md5Demo {
public static String md5Encoder(String generalStr) throws Exception{
MessageDigest messageDigest=MessageDigest.getInstance("MD5");
messageDigest.update(generalStr.getBytes());
//根据明文的字节数组构造 加密后的字符串 可以增加位移算法 独立的key等
byte[]bytes=messageDigest.digest();
String md5Str="";
for (int i = 0; i < bytes.length; i++) {
//System.out.println("每个字节数组数值:"+(char)bytes[i]);
//判断每个字节的数值 小于0的会出现负数 不要
int temp=0;
if(bytes[i]<0){
temp=256+bytes[i];
}else{
temp=bytes[i];
}
//当位数不够补位
if(temp<16){
md5Str=md5Str+"0";
}
md5Str=md5Str+Integer.toString(temp,16);
}
return md5Str;
}
public static void main(String[] args) throws Exception {
System.out.println("md5加密::"+md5Encoder("12345"));
}
}
转载于:https://my.oschina.net/u/2425851/blog/630907