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 Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/z1234/p/7154755.html
Copyright © 2011-2022 走看看