MD5简单加密处理字符串
java代码如下,代码比较简单,没有多余的处理,可能也会存在些许问题
import org.springframework.stereotype.Component;
import java.math.BigInteger;
import java.security.MessageDigest;
@Component
public class md5Utils {
private static final String salt="自定义加盐的字符串";
/**
* @param str
* @return java.lang.String
* @描述: md5简易版加盐,返回加密后的字符串!
*/
public String md5(String str) {
MessageDigest md5=null;
try {
md5 = MessageDigest.getInstance("MD5");
}catch (Exception e){
//md5加载失败
System.out.println("md5加载失败!");
return null;
}
if (null != str && !"".equals(str)){
String endStr=str+salt;
md5.update(endStr.getBytes());
//
String md5str = new BigInteger(1, md5.digest()).toString(16);
char st = md5str.charAt(0);
char en = md5str.charAt(md5str.length()-5);
String substring = md5str.substring(1, md5str.length() - 1);
return en+substring+st;
}else
return null;
}
/**
* @param str 验证字符
* @param md5str md5转换后的字符串
* @return java.lang.Boolean
* @描述: str与md5加密后的字符串配对!
*/
public Boolean md5verifyStr(String str,String md5str) {
if (null != md5(str) && null != md5str && !"".equals(md5str)){
return md5str.equals(md5(str));
}else
return null;
}
}
接下来只需要调用两个方法就可以对字符串加密和比对了,但是加密后的字符串是不可逆的,所以加密后的字符串不能解析为原来的字符串,请谨慎考虑和使用,自己练习当我没说。