Java常用工具类之MD5加密

package com.wazn.learn.util;

import java.security.MessageDigest;  

/** 
 * MD5加密工具类 
 * <功能详细描述> 
 *   
 */  
public abstract class MD5Util  
{  
    public final static String MD5(String pwd) {  
        //用于加密的字符  
        char md5String[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',  
                'A', 'B', 'C', 'D', 'E', 'F' };  
        try {  
            //使用平台的默认字符集将此 String 编码为 byte序列,并将结果存储到一个新的 byte数组中  
            byte[] btInput = pwd.getBytes();  
               
            //信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。  
            MessageDigest mdInst = MessageDigest.getInstance("MD5");  
               
            //MessageDigest对象通过使用 update方法处理数据, 使用指定的byte数组更新摘要  
            mdInst.update(btInput);  
               
            // 摘要更新之后,通过调用digest()执行哈希计算,获得密文  
            byte[] md = mdInst.digest();  
               
            // 把密文转换成十六进制的字符串形式  
            int j = md.length;  
            char str[] = new char[j * 2];  
            int k = 0;  
            for (int i = 0; i < j; i++) {   //  i = 0  
                byte byte0 = md[i];  //95  
                str[k++] = md5String[byte0 >>> 4 & 0xf];    //    5   
                str[k++] = md5String[byte0 & 0xf];   //   F  
            }  
               
            //返回经过加密后的字符串  
            return new String(str);  
               
        } catch (Exception e) {  
            return null;  
        }  
    }  
}  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习之tensorflow实战篇

Python正则表达式匹配各种标准形式整理

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 正则表达式链接网址 匹配中文字符的正则表达式: [\u4e0...

4244
来自专栏静晴轩

必备之常用正则表达式

熟练而优雅的使用正则,对于程序员来讲,实在太有意义了(即便非此类者,也是好处多多);它辅助处理复杂的文本查询和字符串操作,不仅能用之于代码,还能雅之于编辑器,浏...

3265
来自专栏行者常至

(16)Struts2_OGNL读取Map栈及其他字段和方法属性

593
来自专栏三好码农的三亩自留地

RxJava2源码解读之 Map、FlatMap

这里抛出一个问题,map 调用我们提供的function进行转换,那么这个function在什么时候被调用?在哪个线程被调用?(这个对我们实际工程中使用map有...

3461
来自专栏我的博客

正则表达式–应用篇

匹配年月日(常见三种格式2012-12-12、2012/12/12、2012年12月12日) <?php //匹配格式如:2012年12月12日 $mode...

2693
来自专栏个人随笔

正则表达式 语言间通用

1. 数字:^[0-9]*$ 2. n位的数字:^\d{n}$ 3. 至少n位的数字:^\d{n,}$ 4. m-n位的数字:^\d{m,n}$ 5....

49817
来自专栏前端知识分享

第177天:常用正则表达式(最全)

812
来自专栏林欣哲

凯撒加密之一个神奇的Python的API

凯撒加密 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。 本质上恺撒加密就是一种替换加密的方式。 明文中的所有字母都在字母表上向后(或向前)按照一个固...

3845
来自专栏沈唁志

PHP开发中常用的正则表达式

2302
来自专栏机器学习算法与Python学习

笔记 | 史上最全的正则表达式

原文:http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 点击文末阅读原文即可 很多不太懂正...

32511

扫码关注云+社区

领取腾讯云代金券