zoukankan      html  css  js  c++  java
  • 调查管理系统 -(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包详解

  • 相关阅读:
    JDK源码分析 – HashMap
    牛哄哄的celery
    redis数据库基础篇
    RPC的入门应用
    Python的常用模块
    消息队列之真知灼见
    面向对象编程(2)
    python3的C3算法
    面向对象编程(1)
    CRM项目之stark组件(2)
  • 原文地址:https://www.cnblogs.com/KnightKitt/p/3951617.html
Copyright © 2011-2022 走看看