zoukankan      html  css  js  c++  java
  • MD5

    MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3MD4

    1、java自带MD5算法

    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    /**
     * @Auther: wuyilong
     * @Date: 2019/4/17 09:10
     * @Description:
     */
    public class MD5 {
    
        public static String md5(String text) {
            byte[] secretBytes = null;
            try {
                MessageDigest md = MessageDigest.getInstance("MD5");
                md.update(text.getBytes());
                secretBytes = md.digest();
            } catch (NoSuchAlgorithmException e) {
                throw new RuntimeException("没有MD5这个算法");
            }
    
            // 将加密后的数据转换为16进制数字
            String md5code = new BigInteger(1, secretBytes).toString(16);
            // 如果生成数字未满32位,需要前面补0
            for(int i = 0; i < 32 - md5code.length(); i++) {
                md5code = "0" + md5code;
            }
            return md5code;
        }
    
        public static void  main(String[] args) {
            String str = "123";
            System.out.println(md5(str));
        }
    }
    

      

    2、commons-codec提供的MD5算法

    在maven文件中加入依赖

        <dependency>
          <groupId>commons-codec</groupId>
          <artifactId>commons-codec</artifactId>
          <version>1.11</version>
        </dependency>
    

      

    import org.apache.commons.codec.digest.DigestUtils;
    
    /**
     * @Auther: wuyilong
     * @Date: 2019/4/17 09:10
     * @Description:
     */
    public class MD5 {
        
        public static String md5(String text, String key) {
            String encodeStr = DigestUtils.md5Hex(text+key);
            return encodeStr;
        }
    
        public static boolean verify(String text, String key, String md5) {
            String md5Text = md5(text, key);
            if(md5Text.equalsIgnoreCase(md5)) {
                return true;
            }
    
            return false;
        }
    
    
        public static void  main(String[] args) {
            String text = "wu";
            String key = "jun";
            System.out.println(md5(text, key));
            System.out.println(verify(text, key, md5(text, key)));
        }
    }
    

      

  • 相关阅读:
    android sdk里的各目录作用
    android广播接收器
    Android 服务
    全球10个智慧城市应用案例
    大数据应用蓝皮书:未来涉及5个热点领域
    2018杭州-云栖大会
    上海世界人工智能大会大佬观点
    2018世界人工智能大会
    大数据安全
    2018第37周六
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10721456.html
Copyright © 2011-2022 走看看