zoukankan      html  css  js  c++  java
  • MD5加密(32位,大写/小写)

    不多说其他的,MD5加密用于一些数据的保密,列入:密码等;在这所用的是MD5加密成32位。

    32位:(第一种)

    public class MD5 {

    // 全局数组

    //大写
    // private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",

    // "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };

    //小写
    //    private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",

    // "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
     
        public MD5() {
    }

    // 返回形式为数字跟字符串
    private static String byteToArrayString(byte bByte) {
    int iRet = bByte;
    // System.out.println("iRet="+iRet);
    if (iRet < 0) {
    iRet += 256;
    }
    int iD1 = iRet / 16;
    int iD2 = iRet % 16;
    return strDigits[iD1] + strDigits[iD2];
    }

    // 返回形式只为数字
    private static String byteToNum(byte bByte) {
    int iRet = bByte;
    System.out.println("iRet1=" + iRet);
    if (iRet < 0) {
    iRet += 256;
    }
    return String.valueOf(iRet);
    }

    // 转换字节数组为16进制字串
    private static String byteToString(byte[] bByte) {
    StringBuffer sBuffer = new StringBuffer();
    for (int i = 0; i < bByte.length; i++) {
    sBuffer.append(byteToArrayString(bByte[i]));
    }
    return sBuffer.toString();
    }

    public static String GetMD5Code(String strObj) {
    String resultString = null;
    try {
    resultString = new String(strObj);
    MessageDigest md = MessageDigest.getInstance("MD5");
    // md.digest() 该函数返回值为存放哈希值结果的byte数组
    resultString = byteToString(md.digest(strObj.getBytes()));
    } catch (NoSuchAlgorithmException ex) {
    ex.printStackTrace();
    }
    return resultString;
    }

    public static void main(String[] args) {
    MD5 getMD5 = new MD5();
    System.out.println("MD5的结果:"+getMD5.GetMD5Code("qweerretw%$12sde"));
    }
    }

    (第二种)
    public static String stringMD5(String pw) {
    try {
    MessageDigest messageDigest =MessageDigest.getInstance("MD5");
    byte[] inputByteArray = pw.getBytes();
    messageDigest.update(inputByteArray);
    byte[] resultByteArray = messageDigest.digest();
    return byteArrayToHex(resultByteArray);
    } catch (NoSuchAlgorithmException e) {
    return null;
    }
    }

    public static String byteArrayToHex(byte[] byteArray) {

    char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f' }
    char[] resultCharArray =new char[byteArray.length * 2];
    int index = 0;
    for (byte b : byteArray) {
    resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];
    resultCharArray[index++] = hexDigits[b& 0xf];
    }
    return new String(resultCharArray);
    }
  • 相关阅读:
    我的浏览器收藏夹分类
    我的浏览器收藏夹分类
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
  • 原文地址:https://www.cnblogs.com/z1234/p/7154755.html
Copyright © 2011-2022 走看看