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


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

     1 import java.security.MessageDigest;  
     2 import java.security.NoSuchAlgorithmException;  
     3   
     4 import org.apache.commons.codec.digest.DigestUtils;//开发的jar包 使用更方便  
     5 public class MD5 {  
     6       
     7     /* 
     8      * 1.一个运用基本类的实例 
     9      * MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。 
    10      * 任何时候都可以调用 reset 方法重置摘要。 
    11      * 一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。 
    12      * 对于给定数量的更新数据,digest 方法只能被调用一次。 
    13      * 在调用 digest 之后,MessageDigest 对象被重新设置成其初始状态。  
    14      */  
    15     public static void encrypByMd5(String context) {  
    16         try {  
    17             MessageDigest md = MessageDigest.getInstance("MD5");  
    18             md.update(context.getBytes());//update处理  
    19             byte [] encryContext = md.digest();//调用该方法完成计算  
    20   
    21             int i;  
    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 void encrypByMd5Jar(String context) {  
    43         String md5Str = DigestUtils.md5Hex(context);  
    44         System.out.println("32result: " + md5Str);        
    45     }  
    46   
    47     public static void main(String[] args) {  
    48           
    49         encrypByMd5("yang");  
    50         encrypByMd5Jar("yang");  
    51     }  
    52 }  
  • 相关阅读:
    Command模式应用实践
    .Net中的设计模式——Strategy模式
    PetShop之ASP.NET缓存
    征求书名
    PetShop之业务逻辑层设计
    Buider模式应用实践
    公告:目前博客园书业出版小组的工作进度
    “AS3.0高级动画编程”学习:第二章转向行为(下)
    as3: this,stage,root的测试
    As3.0中的位图(Bitmap/BitmapData)编程
  • 原文地址:https://www.cnblogs.com/sharpest/p/10416019.html
Copyright © 2020-2023  润新知