直接上代码,对于MD5的其它信息,可以去参考下其它的博客。
很多的博客代码基本都相同,但是没有引入 pom 的部分,所以这里把 pom 也写上了。
这篇博客是在项目结束后把项目中使用的一些知识点整理后写的。直接复制使用即可
引入pom依赖
<!-- MD5加密 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
主要的代码
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.bind.annotation.RestController;
/**
* @author: 生花脱颖
* @date: 2020/3/27 19:14
* @version: V2.0
*/
@RestController
public class MdUtils {
/**
* @param text 明文
* @param slat 盐
* @return 加密后的 text
*/
// 带秘钥加密
public static String md5(String text, String slat) throws Exception {
// 加密后的字符串
String md5str = DigestUtils.md5Hex(text + slat); // 生成使用盐的 MD5 密文
// System.out.println("MD5加密后的字符串为:" + md5str);
return md5str;
}
// 不带秘钥加密
public static String md52(String text) throws Exception {
// 加密后的字符串
String md5str = DigestUtils.md5Hex(text); // 生成不加盐的 MD5 密文
// System.out.println("MD52加密后的字符串为:" + md5str + "\t长度:" + md5str.length());
return md5str;
}
// -------------------下面的是解密验证MD5部分。
/**
* MD5验证方法
* @param text 明文
* @param slat 盐
* @param md5 密文
*/
// 根据传入的密钥进行验证
public static boolean verify(String text, String slat, String md5) throws Exception {
String md5str = md5(text, slat);
// return md5str.equalsIgnoreCase(md5); // 应该可以直接 return 这个,没有测试过
if (md5str.equalsIgnoreCase(md5)) {
// System.out.println("验证通过");
return true;
}
return false;
}
// 根据传入的密钥进行验证
public static boolean verify(String text, String md5) throws Exception {
String md5str = md52(text);
if (md5str.equalsIgnoreCase(md5)) {
// System.out.println("验证通过");
return true;
}
return false;
}
}