JAVA加密算法系列-MD5
2024-08-26 04:58:41
package **; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; public class MD5 {
/**
* MD5加密算法,参数选择16还是32位
* 默认为32位
* @param plainText 需加密的文本
* @param md5Type 16/32
* @return 加密后的密文
*/
public static String Md5(String plainText,String md5Type) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i; StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
if(md5Type!=null&&!md5Type.trim().equals("")&&md5Type.trim().equals("16")){
return buf.toString().substring(8, 24).toUpperCase();// 16位的加密
}else{
return buf.toString().toUpperCase();// 32位的加密大写
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
} public static void main(String[] args) {
Md5("123456","16");
System.out.println(Md5("123456","16")); Md5("123456","32"); System.out.println(Md5("123456","32"));
System.out.println(Md5("123456","32").equals("E10ADC3949BA59ABBE56E057F20F883E")); System.out.println(Md5("123456","16").equals("49BA59ABBE56E057")); }
}
最新文章
- 无需activity获得屏幕尺寸
- 用StackExchange.Redis客户端连接阿里云Redis服务遇到的问题
- ngModel 值不更新/显示
- Nancy总结(二)记一次Nancy 框架中遇到的坑
- php的字符串转2进制函数
- 4.cadence原理图,环境设置[原创]
- 中文乱码问题(使用Servlet3.0新特性实现文件上传——上传文件名中文乱码问题)
- 【HDU 4786 Fibonacci Tree】最小生成树
- Ubuntu 12.04 wireless networks : devices not ready (firmware missing)解决办法
- Dubbo协议与连接控制
- OpenGL ES着色器语言之着色概览(官方文档)
- gradient渐变IE兼容处理
- Libevent(2.1.8)中的事件结构和管理
- 开放源代码的设计层面框架Spring——day03
- git配置代理
- js计算日期相减天数
- Docker 国内仓库和镜像
- React 添加对 Less 的支持, 使用 create-react-app 脚手架
- php 防止sql注入的简单方法
- centos下mysql自动备份(亲测可用)