调查管理系统 -(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包详解

 

你可能感兴趣的:(MD5加密)