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包详解

  • 相关阅读:
    linux软件名规则
    给php开启mysql扩展
    centos6可用的Apache管理脚本
    Centos下设置redis开机自启动
    拆卸mysql
    如何判断是否在一个网路中
    linux 如何清理僵尸进程
    如何查找僵尸进程并Kill之,杀不掉的要查看父进程并杀之
    一张图告诉你php的命名空间和自动加载
    PHP的文件加载机制到底是什么目录
  • 原文地址:https://www.cnblogs.com/KnightKitt/p/3951617.html
Copyright © 2011-2022 走看看