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

  • 相关阅读:
    应用服务器性能优化总结
    Web性能优化:图片优化
    图片优化
    浏览器端的九种缓存机制介绍
    MySQL 与 MongoDB的操作对比
    js类型判别大合集
    节流函数和防抖函数的注意事项
    前端和后端交互的方式
    js中关于假值和空数组的总结
    LeetCode 367. 有效的完全平方数
  • 原文地址:https://www.cnblogs.com/KnightKitt/p/3951617.html
Copyright © 2020-2023  润新知