MD5加密工具类Md5Utils
引入maven依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
md5加密不可逆,但可对md5加密后的字符串进行再加密及解密
public class Md5Utils {
/**
* 带秘钥加密
*
* @param text 明文
* @param key 密钥
* @return 密文
*/
public static String md5Encrypt(String text, String key) {
return md5Encrypt(text + key);
}
/**
* 不带秘钥加密
*
* @param text 明文
* @return 密文
*/
public static String md5Encrypt(String text) {
return DigestUtils.md5Hex(text);
}
/**
* MD5验证 根据传入的密钥和密文进行验证
*
* @param text 明文
* @param key 密钥
* @param md5 密文
*/
public static boolean verify(String text, String key, String md5) {
String md5str = md5Encrypt(text, key);
if (md5str.equalsIgnoreCase(md5)) {
return true;
}
return false;
}
/**
* 加密 此过程可逆
*
* @param md5Str md5加密后的字符串
* @return
*/
public static String encrypt(String md5Str) {
char[] a = md5Str.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i] = (char) (a[i] ^ 't');
}
return new String(a);
}
/**
* 解密
*
* @param encrypt 加密后的字符串
* @return
*/
public static String decrypt(String encrypt) {
return encrypt(encrypt(encrypt));
}
public static void main(String args[]) {
String s = "123456";
String md5str = md5Encrypt(s);
System.out.println("原始:" + s);
System.out.println("MD5后:" + md5str);
System.out.println("MD5后再加密:" + encrypt(md5str));
System.out.println("解密为MD5后的:" + decrypt(md5str));
}
}
参考文章:https://www.cnblogs.com/android-blogs/p/5305598.html