• MD5加密


    1.MD5工具类

    MD5工具类代码如下:因为我们经常使用utf-8进行加密,所以就只对外开放了一个硬编码的utf-8的MD5加密,这个工具类可以根据自己的项目加密的编码进行适当的修改,

    例如:MD5Encode方法则是对传入指定的编码进行加密,不传按照默认加密。也可以将此方法对外开放。

    注意:此加密方法返回的加密代码是大写的。

     1 package com.mmall.util;
     2 
     3 import org.springframework.util.StringUtils;
     4 
     5 import java.security.MessageDigest;
     6 
     7 public class MD5Util {
     8 
     9     private static String byteArrayToHexString(byte b[]) {
    10         StringBuffer resultSb = new StringBuffer();
    11         for (int i = 0; i < b.length; i++)
    12             resultSb.append(byteToHexString(b[i]));
    13 
    14         return resultSb.toString();
    15     }
    16 
    17     private static String byteToHexString(byte b) {
    18         int n = b;
    19         if (n < 0)
    20             n += 256;
    21         int d1 = n / 16;
    22         int d2 = n % 16;
    23         return hexDigits[d1] + hexDigits[d2];
    24     }
    25 
    26     /**
    27      * 返回大写MD5
    28      *
    29      * @param origin
    30      * @param charsetname
    31      * @return
    32      */
    33     private static String MD5Encode(String origin, String charsetname) {
    34         String resultString = null;
    35         try {
    36             resultString = new String(origin);
    37             MessageDigest md = MessageDigest.getInstance("MD5");
    38             if (charsetname == null || "".equals(charsetname))
    39                 resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
    40             else
    41                 resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
    42         } catch (Exception exception) {
    43         }
    44         return resultString.toUpperCase();
    45     }
    46 
    47     public static String MD5EncodeUtf8(String origin) {
    48         origin = origin + PropertiesUtil.getProperty("password.salt", ""); // 这里的盐随意加一个字符串都可以。但是全局盐要唯一。
    49         return MD5Encode(origin, "utf-8");
    50     }
    51 
    52 
    53     private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5",
    54             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
    55 
    56 }

    2.实战

    //MD5加盐加密
    user.setPassword(MD5Util.MD5EncodeUtf8(user.getPassword()));

    // 然后直接保存到数据库中即可。

  • 相关阅读:
    适配器模式
    显示实现接口
    Mysql表引擎的切换
    Mysql事务隔离级别
    按照指定的格式解析字节数组
    委托和事件的简单实用
    C#压缩和解压缩字节(GZip)
    Mysql数据库批量添加数据
    常用的分页类
    保证依赖的服务已全部启动
  • 原文地址:https://www.cnblogs.com/gbb123/p/6791847.html
Copyright © 2020-2023  润新知