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
        }
  • 相关阅读:
    js截取字符串区分汉字字母代码
    List 去处自定义重复对象方法
    63. Unique Paths II
    62. Unique Paths
    388. Longest Absolute File Path
    41. First Missing Positive
    140. Word Break II
    139. Word Break
    239. Sliding Window Maximum
    5. Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/13129739.html
Copyright © 2011-2022 走看看