博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java生成十六进制的MD5加密字符串
阅读量:5947 次
发布时间:2019-06-19

本文共 1165 字,大约阅读时间需要 3 分钟。

hot3.png

import java.math.BigInteger;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * @author joymufeng */public class Md5 {    private static MessageDigest digester;    static {        try {            digester = MessageDigest.getInstance("MD5");        }catch (NoSuchAlgorithmException e) {            e.printStackTrace();        }    }    /**     * 将任意的字符串进行md5加密,并返回加密后的十六进制字符串。     * 需要注意,MessageDigest是非线程安全的,所以需要使用synchronized同步。     * @param str 待加密字符串     * @return 返回md5加密后的十六进制字符串     */    public static String encrypt(String str) {        if (digester == null || str == null || str.length() == 0) {            return null;        }                synchronized (digester){            try {                digester.update(str.getBytes("UTF-8"));                String s1 = new BigInteger(1, digester.digest()).toString(16);                //补齐BigInteger省略的前置0                return new String(new char[32 - s1.length()]).replace("\0", "0") + s1;            } catch (Exception e) {                //一般不会有异常抛出, 该死的Java受检异常,导致丑陋的代码            }        }        return null;    }}

 

 

转载于:https://my.oschina.net/joymufeng/blog/668126

你可能感兴趣的文章
【Hadoop学习】HDFS基本原理
查看>>
关于解决IE8以下版本获取DOM节点的方法
查看>>
vue学习笔记(二)
查看>>
Flask四之模板
查看>>
要不, 我们从右往左书写数组?
查看>>
我的面试准备过程--LeetCode(更新中)
查看>>
【145天】尚学堂高淇Java300集视频精华笔记(103-104)
查看>>
如何在 React Native 中写一个自定义模块
查看>>
SegmentFault 2017 年社区周报 Vol.5
查看>>
JS用原型对象写的贪吃蛇,很粗糙的代码
查看>>
mac安装consul
查看>>
JavaScript深入之bind的模拟实现
查看>>
Learning Notes - Understanding the Weird Parts of JavaScript
查看>>
SegmentFault 2017 年社区周报 Vol.4
查看>>
两种方式javascript实现图片预览
查看>>
数据结构面试 之 单链表是否有环及环入口点 附有最详细明了的图解
查看>>
RancherOS v0.8.0发布:支持离线安装,更佳部署体验
查看>>
AI+社交,快手商业化落地之道
查看>>
Microsoft Graph:连接每个应用都需要的基础数据
查看>>
Latex格式html文件转换pdf和docx文档
查看>>