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);
    }
  • 相关阅读:
    android apk 防止反编译技术第四篇-对抗JD-GUI
    程序猿的健康之路
    webkit浏览器常见开发问题
    解密H264、AAC硬件解码的关键扩展数据处理
    HTTPS与证书
    【微软大法好】VS Tools for AI全攻略(3):低配置虚拟机也能玩转深度学习,无需NC/NV系列
    【微软大法好】VS Tools for AI全攻略(2)
    【微软大法好】VS Tools for AI全攻略
    【写论文历程】这几天的一个小总结
    不得不承认pretty-midi很好用,以及一些简单的上手
  • 原文地址:https://www.cnblogs.com/z1234/p/7154755.html
Copyright © 2011-2022 走看看