zoukankan      html  css  js  c++  java
  • Java生成MD5的方法,简单封装并转为32位小写

     1 import java.security.MessageDigest;
     2 
     3 public class MD5 {
     4 
     5     public static String toMD5(String plainText) {
     6         StringBuffer buf = new StringBuffer("");
     7         try {
     8             // 生成实现指定摘要算法的 MessageDigest 对象。
     9             MessageDigest md = MessageDigest.getInstance("MD5");
    10             // 使用指定的字节数组更新摘要。
    11             md.update(plainText.getBytes());
    12             // 通过执行诸如填充之类的最终操作完成哈希计算。
    13             byte b[] = md.digest();
    14             // 生成具体的md5密码到buf数组(32位小写)
    15             int i;
    16 
    17             for (int offset = 0; offset < b.length; offset++) {
    18                 i = b[offset];
    19                 if (i < 0){
    20                     i += 256;
    21                 }
    22                 if (i < 16){
    23                     buf.append("0");
    24                 }else{
    25                     buf.append(Integer.toHexString(i));
    26                 }
    27             }
    28         } catch (Exception e) {
    29             e.printStackTrace();
    30         }
    31         return buf.toString();
    32     }
    33 
    34     public static byte[] toMD5byte(byte[] plainText) {
    35         StringBuffer buf = new StringBuffer("");
    36         try {
    37             // 生成实现指定摘要算法的 MessageDigest 对象。
    38             MessageDigest md = MessageDigest.getInstance("MD5");
    39             // 使用指定的字节数组更新摘要。
    40             md.update(plainText);
    41             // 通过执行诸如填充之类的最终操作完成哈希计算。
    42             byte b[] = md.digest();
    43             // 生成具体的md5密码到buf数组
    44             int i;
    45 
    46             for (int offset = 0; offset < b.length; offset++) {
    47                 i = b[offset];
    48                 if (i < 0)
    49                     i += 256;
    50                 if (i < 16)
    51                     buf.append("0");
    52                 buf.append(Integer.toHexString(i));
    53             }
    54         } catch (Exception e) {
    55             e.printStackTrace();
    56         }
    57         return buf.toString().getBytes();
    58     }
    59 
    60     /**
    61      * 解决php与javaMD5加密不同 获取MD5加密后的字符串
    62      * 
    63      * @param str
    64      *            明文
    65      * @return 加密后的字符串
    66      * @throws Exception
    67      */
    68     public static String getMD5(String str) throws Exception {
    69         /** 创建MD5加密对象 */
    70         MessageDigest md5 = MessageDigest.getInstance("MD5");
    71         /** 进行加密 */
    72         md5.update(str.getBytes("GBK"));
    73         /** 获取加密后的字节数组 */
    74         byte[] md5Bytes = md5.digest();
    75         String res = "";
    76         for (int i = 0; i < md5Bytes.length; i++) {
    77             int temp = md5Bytes[i] & 0xFF;
    78             if (temp <= 0XF) { // 转化成十六进制不够两位,前面加零
    79                 res += "0";
    80             }
    81             res += Integer.toHexString(temp);
    82         }
    83         return res;
    84     }
    85 }
  • 相关阅读:
    mysql备份还原
    JavaScript位移运算多个大于号的使用方法
    js with 语句的用法
    公告栏文字滚动
    Tar打包、压缩与解压缩到指定目录的方法
    域名跳转汇总文章
    linux常用命令大全
    nginx添加多站点
    linux一键安装php环境
    linux安装unzip及使用
  • 原文地址:https://www.cnblogs.com/404code/p/11248422.html
Copyright © 2011-2022 走看看