java 调用apache.commons.codec的包简单实现MD5加密

摘要:
10*任何时候都可以调用reset方法重置摘要。11*一旦所有需要更新的数据都已经被更新了,应该调用digest方法之一完成哈希计算。13*在调用digest之后,MessageDigest对象被重新设置成其初始状态。

转自:https://blog.csdn.net/mmd1234520/article/details/70210002/

1 importjava.security.MessageDigest;  
2 importjava.security.NoSuchAlgorithmException;  
3   
4 import org.apache.commons.codec.digest.DigestUtils;//开发的jar包 使用更方便  
5 public classMD5 {  
6       
7     /* 
8 * 1.一个运用基本类的实例 
9 * MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。 
10 * 任何时候都可以调用 reset 方法重置摘要。 
11 * 一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。 
12 * 对于给定数量的更新数据,digest 方法只能被调用一次。 
13 * 在调用 digest 之后,MessageDigest 对象被重新设置成其初始状态。  
14      */  
15     public static voidencrypByMd5(String context) {  
16         try{  
17             MessageDigest md = MessageDigest.getInstance("MD5");  
18             md.update(context.getBytes());//update处理  
19             byte [] encryContext = md.digest();//调用该方法完成计算  
20   
21             inti;  
22             StringBuffer buf = new StringBuffer("");  
23             for (int offset = 0; offset < encryContext.length; offset++) {//做相应的转化(十六进制)  
24                 i =encryContext[offset];  
25                 if (i < 0) i += 256;  
26                 if (i < 16) buf.append("0");  
27 buf.append(Integer.toHexString(i));  
28 }  
29            System.out.println("32result: " + buf.toString());//32位的加密  
30            System.out.println("16result: " + buf.toString().substring(8, 24));//16位的加密  
31         } catch(NoSuchAlgorithmException e) {  
32             //TODO Auto-generated catch block  
33 e.printStackTrace();  
34 }  
35 }  
36       
37     /* 
38 * 2.使用开发的jar直接应用 
39 *  使用外部的jar包中的类:import org.apache.commons.codec.digest.DigestUtils; 
40 *  对上面内容的一个封装使用方便 
41      */  
42     public static voidencrypByMd5Jar(String context) {  
43         String md5Str =DigestUtils.md5Hex(context);  
44         System.out.println("32result: " +md5Str);        
45 }  
46   
47     public static voidmain(String[] args) {  
48           
49         encrypByMd5("yang");  
50         encrypByMd5Jar("yang");  
51 }  
52 }  

免责声明:文章转载自《java 调用apache.commons.codec的包简单实现MD5加密》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关系图表Echart的使用springboot&amp;amp;layedit 上传文件,配置静态资源文件,存放磁盘其他目录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

YAML简述

一、基础 YAML(Yet Another Markup Language),是一个JSON的超集,意味着任何有效JSON文件也都是一个YAML文件。它规则如下: 1)大小写敏感 2)使用缩进表示层级关系,但不支持tab缩进,只支持空格 3)缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的空格即可 4)“#”表示注释,从这个字符开始,直到行末,都...

[Google Guava]学习--新集合类型Multimap

每个有经验的Java程序员都在某处实现过Map<K, List<V>>或Map<K, Set<V>>,并且要忍受这个结构的笨拙。 假如目前有个需求是给两个年级添加5个学生,并且统计出一年级学生的信息: public classMultimapTest { classStudent {...

EasyPoi 导入导出Excel时使用GroupName的踩坑解决过程

一、开发功能介绍: 简单的一个excel导入功能 二、Excel导入模板(大致模板没写全): 姓名 性别 生日 客户分类 联系人姓名 联系人部门  备注 材料 综合 采购 张三 男 1994/05/25 1 1 1 张三 开发部   李四 男 1994/05/25 1 1 1 张三 开发部   王五 男 1994/05/25 1 1 1...

django实现支付宝支付

目录 django支付宝支付 新建支付宝应用 创建应用(使用沙箱环境测试) 按照官方要求生成私钥(可以上支付宝开发平台下载支付宝开发助手) 把生成的app公钥粘贴到沙箱的app中 查看沙箱账号和密码 支付宝开发地址 说明 在utils中封装请求支付宝扫码地址url的函数和生成订单id的函数 在model.py中定义表 在views.py中...

C#开发微信门户及应用(26)-公众号微信素材管理

微信公众号最新修改了素材的管理模式,提供了两类素材的管理:临时素材和永久素材的管理,原先的素材管理就是临时素材管理,永久素材可以永久保留在微信服务器上,微信素材可以在上传后,进行图片文件或者图文消息的发送,关注的公众号可以在素材有效期内查看相关的资源,对于永久素材,那就不会存在过期的问题,只是纯粹数量上限的限制。本文综合两方面进行介绍素材管理的各种接口...

asp.net中序列化和反序列化json的两种常用方式

使用System.Web.Script.Serialization.JavaScriptSerializer类       JavaScriptSerializer类为.net类库自带,.net3.5及以后版本都可以使用,该类位于System.Web.Extensions.dll中,如需使用该类,必须添加引用。      (1) 序列化 p...