zoukankan      html  css  js  c++  java
  • md5

    MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

     在JDK内部集成多种算法,包括MD5和AES等,那MD5在Java上的使用就非常简单了,默认的加密是小写的

    看一个简单的加密解密

    public class Md5_test {
        public static void main(String[] args)
        {
            String passwordString = "123456";
            String  digeString = DigestUtils.md5Hex(passwordString);
            System.out.print("Md5Test.main()digest="+digeString);
            } 
    }

    存入数据库即可

    //密码的隐藏
            password= DigestUtils.md5Hex(password);

    不过需要导入org.apache.commons.codec.digest.DigestUtils这个包

    点击看里面的源码就能看到各种方法。工具类为我们提供了很多封装方法

    当然还有很多这样的工具类如

    来自java.security.MessageDigest的MessageDigest
    点金源码看到方法

     

    再看一个md5的实例

    public class MD5 {
     
        /**
         * 对传入的String进行MD5加密
         * 
         * @param s
         * @return
         */
        public static final String getMd5(String s) {
            // 16进制数组
            char hexDigits[] = { '5', '0', '5', '6', '2', '9', '6', '2', '5', 'q', 'b', 'l', 'e', 's', 's', 'y' };
            try {
                char str[];
                // 将传入的字符串转换成byte数组
                byte strTemp[] = s.getBytes();
                // 获取MD5加密对象
                MessageDigest mdTemp = MessageDigest.getInstance("MD5");
                // 传入需要加密的目标数组
                mdTemp.update(strTemp);
                // 获取加密后的数组
                byte md[] = mdTemp.digest();
                int j = md.length;
                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];
                }
                // 转换成String并返回
                return new String(str);
            } catch (Exception e) {
                return null;
            }
        }
     
        public static void main(String[] args) {
            System.out.println(MD5.getMd5("123456"));//s05bse6q2qlb9qblls96s592y55y556s
        }
  • 相关阅读:
    如何提交docker镜像到DockerHub
    【leetcode】200. Number of Islands
    【Java NIO】一文了解NIO
    【Java】同步阻塞式(BIO)TCP通信
    【剑指offer】9、斐波拉契数列
    SolidWorks242个使用技巧
    BR(BoomerangRobot)机器人项目
    Android学习笔记基于回调的事件处理
    Android学习笔记基于监听的事件处理
    Android学习笔记Log类输出日志信息
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/13129739.html
Copyright © 2011-2022 走看看