调查管理系统 -(2)MD5加密的基本过程与实现

MD5加密的基本过程:

1、将一个字符串通过getBytes()方法编码为一个字节数组byte[] bytes;

2、将bytes数组经过MD5算法的加密后获得到一个长度为16的新的字节数组md5bytes;

3、将md5bytes数组转换为一个字符串进行保存(一般的该过程是将加密获得的md5bytes转换为十六进制[0~F]保存的32位的字符串)

具体实现:

 1 package com.atguigu.surveypark.util;
 2 import java.security.MessageDigest;
 3 public class DataUtil {
 4     /**
 5      * 使用md5算法进行加密 
 6      */
 7     public static String md5(String src){
 8         try {
 9             StringBuffer buffer = new StringBuffer();
10             char[] chars = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
11             byte[] bytes = src.getBytes();
12             MessageDigest md = MessageDigest.getInstance("MD5");
13             byte[] targ = md.digest(bytes);
14             for(byte b: targ){
15                 buffer.append(chars[(b >> 4) & 0x0F]); //当前字节向右移动四位后与(0x00001111)进行"与操作",即对高四位进行与操作。
16                 buffer.append(chars[b & 0x0F]); //对低四位进行与操作。
17             }
18             return buffer.toString();
19         } catch (Exception e) {
20             e.printStackTrace();
21         }
22         return null ;
23     }
24 }

除了自己实现对加密后的字节数组的转换工作之外,还可以直接使用Apache提供的commons-codec.jar包提供的方法来完成对字符串加密处理工作。

如:String md5Digest = DigestUtils.md5Hex("12345");

关于commons-codec.jar包参考:http://www.cnblogs.com/tingzi/archive/2012/08/17/2643742.html(Commons codec jar包详解

原文地址:https://www.cnblogs.com/KnightKitt/p/3951617.html