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数据结构第二篇---链表
    原来你是这样的---原型和原型链
    JS数据结构第一篇---算法之复杂度判断
    程序员的数学
    一位码农的转行
    如何看待程序媛们的职场焦虑和未来职业规划?
    如何快速融入团队并成为团队核心(九)
    如何快速融入团队并成为团队核心(八)
    使用ASP.NET Core构建RESTful API的技术指南
    如何快速融入团队并成为团队核心(七)
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/13129739.html
Copyright © 2011-2022 走看看