博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说如何使用 Java 原生方法实现 MD5 加密算法
阅读量:1902 次
发布时间:2019-04-26

本文共 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哈哈~

转载地址:http://bmdcf.baihongyu.com/

你可能感兴趣的文章
C#对象转换工具类
查看>>
C# SHA512和Base64加解密方法
查看>>
vs professional 2019 离线安装包下载方法
查看>>
sit、qas、dev、pet
查看>>
C# json转对象
查看>>
js定时器
查看>>
Jenkins 2017年用过
查看>>
aliplay获取播放时长
查看>>
ckplayer获取播放时长一
查看>>
CI/CD/Jenkins
查看>>
Docker
查看>>
网页瀑布流收集
查看>>
C# xml序列化 datatime字段
查看>>
C# LoadXml System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
查看>>
jQuery.Marquee
查看>>
vs setup 自动下载依赖的framework配置
查看>>
layer.open自定义弹出位置
查看>>
js获取网页和屏幕高度
查看>>
jQuery控制页面滚动条上下滚动
查看>>
jquery.append
查看>>