说说如何使用 Java 原生方法实现 MD5 加密算法
发布日期:2021-06-29 21:10:13
浏览次数:3
分类:技术文章
本文共 1248 字,大约阅读时间需要 4 分钟。
Java 中提供了原生方法 MessageDigest.getInstance("MD5")
可以直接实现 MD5 算法,因为这个方法返回的是二进制数组,我们使用前还需要把二进制数组转换为十六进制的字符串:
/** * MD5 算法 * * @author Deniro Li (lisq037@163.com) * 2018/3/17 */public class MD5 { /** * md5 加密 * * @param s * @return */ public static String encode(String s) { try { return toHex(MessageDigest.getInstance("MD5").digest(s.getBytes("UTF-8"))).toLowerCase(); } catch (Exception e) { throw new RuntimeException("md5 加密", e); } } /** * 十六进制字符 */ private static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray(); /** * 转换为十六进制字符串 * * @param bytes * @return */ private static String toHex(byte[] bytes) { StringBuilder str = new StringBuilder(bytes.length * 2); final int fifteen = 0x0f;//十六进制中的 15 for (byte b : bytes) { //byte 为 32 位 str.append(HEX_CHARS[(b >> 4) & fifteen]);//获取第 25 位到第 28 位的二进制数 str.append(HEX_CHARS[b & fifteen]);//获取第 29 位到第 32 位的二进制数 } return str.toString(); }}
单元测试:
public class MD5Test { @Test public void encode(){ assertEquals("e10adc3949ba59abbe56e057f20f883e", MD5.encode("123456")); }}
是不是很简单呀O(∩_∩)O哈哈~
转载地址:https://deniro.blog.csdn.net/article/details/79590535 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月30日 10时19分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
修改root登录用户名减少阿里云Linux主机“被暴力破解”警告
2019-04-30
linux下RPM工具的使用
2019-04-30
QTableWidget常用使用总结(转)
2019-04-30
dynamic_cast
2019-04-30
如何将QT应用程序打包发布
2019-04-30
Qt在Windows数据库的连接
2019-04-30
Qt远程连接MySql数据库
2019-04-30
Windows下Qt的MYSQL数据库开发步骤
2019-04-30
QtCreator中常用快捷键总结
2019-04-30
ReferenceError: Unknown plugin component
2019-04-30
vue 引入 element-ui 报 es2015 的错
2021-07-03
图片暴力压缩
2021-07-03
vue 插件 之 生成二维码 qrcodejs2
2021-07-03
javascript 之 获取毫秒时间戳
2021-07-03
python 环境搭建无坑
2021-07-03
python 配置web自动化测试框架 selenium
2021-07-03
python 自动化测试 selenium 框架 - 1
2021-07-03
html 导出 excel -- 1
2021-07-03
html 导出 excel 设置单元格文本格式 -- 2
2021-07-03