• java 自带md5加密


    package test;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    public class MD5Util {
        //第一种实现
        public final static String MD5(String s) {
            char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};       
            try {
                byte[] btInput = s.getBytes();
                // 获得MD5摘要算法的 MessageDigest 对象
                MessageDigest mdInst = MessageDigest.getInstance("MD5");
                // 使用指定的字节更新摘要
                mdInst.update(btInput);
                // 获得密文
                byte[] md = mdInst.digest();
                // 把密文转换成十六进制的字符串形式
                int j = md.length;
                char str[] = new char[j * 2];
                int k = 0;
                for (int i = 0; i < j; i++) {
                    byte byte0 = md[i];
                    str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                    str[k++] = hexDigits[byte0 & 0xf];
                }
                return new String(str);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        //第二种实现
        public final static String MD(String str) {//项目中的
            try {
                  MessageDigest md5 = MessageDigest.getInstance("MD5");
                  md5.update(str.getBytes());
                  byte b[] = md5.digest();
    
                  StringBuffer sb = new StringBuffer("");
                  for (int n = 0; n < b.length; n++) {
                    int i = b[n];
                    if (i < 0) i += 256;
                    if (i < 16) sb.append("0");
                    sb.append(Integer.toHexString(i));
                  }
                  return sb.toString();  //32位加密
                } catch (NoSuchAlgorithmException e) {
                  e.printStackTrace();
                  return null;
                }
        }
        public static void main(String[] args) {
            System.out.println(MD5Util.MD5("111"));
            System.out.println(MD5Util.MD("111"));
        }
    }
  • 相关阅读:
    Jackson 框架,轻易转换JSON
    Java Thread 多线程 操作线程
    Oracle笔记 四、增删改、事务
    Oracle笔记 六、PL/SQL简单语句块、变量定义
    Java 的JSON、XML转换方法——目录索引
    SpringMVC 中整合JSON、XML视图一
    FreeMarker整合Spring 3
    Java Thread 多线程 介绍
    Jaxb2 转换XML文档
    Java Thread 多线程同步、锁、通信
  • 原文地址:https://www.cnblogs.com/liqforstudy/p/5479028.html
Copyright © 2020-2023  润新知