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
        }
  • 相关阅读:
    lnmp之php5.6.29安装
    lnmp之mysql5.5.17安装
    利用xshell从windows上传文件到虚拟机
    linux命令
    tp中ueditor编辑器的使用
    Thinkphp 3.2.2 验证码check_verify方法,只能验证一次
    选学霸
    低价购买
    友好城市
    榨取kkksc03
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/13129739.html
Copyright © 2011-2022 走看看