在业务需求中,我经常会遇到比较两个超长的对象是否相等的问题,将其转成JSONString再比较,相对于较为耗时,所以将通过MD5加密,在进行比较。
关键代码(只记录了md5加密的代码Demo):
public static void main(String[] args) {
String str1 = "test{}[```333sss]";
String str2 = "test{}[```333sss]";
// 生成一个MD5加密计算摘要
try {
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算md5函数
md.update(str1.getBytes());
String s = new BigInteger(1, md.digest()).toString(16);
System.out.println(s);
// 计算md5函数
MessageDigest md2 = MessageDigest.getInstance("MD5");
md2.update(str2.getBytes());
String s1 = new BigInteger(1, md2.digest()).toString(16);
System.out.println(s1);
System.out.println(StringUtils.equals(s, s1));
} catch (Exception e) {
}
}