zoukankan      html  css  js  c++  java
  • 方法----MessageDigest和DigestUtils加密算法

    总结:使用DigestUtils的方法加密的结果与messageDigest的方法加密结果一致,可使用DigestUtils替换MessageDigest 可省掉部分代码
    package com.action;

    import java.security.MessageDigest;

    import org.apache.commons.codec.digest.DigestUtils;

    public class Hello {
        
        private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        
        public static void main(String[] args) throws Exception {
            String testStr = "baichuanyu12";
            
            //使用DigestUtils进行md5加密  需要引入 commons-codec.jar
            String md5Result = DigestUtils.md5Hex(testStr.getBytes());
            System.out.println(md5Result);
            //使用DigestUtils进行sha1加密
            String sha1Result = DigestUtils.shaHex(testStr.getBytes());
            System.out.println(sha1Result);
            
            //使用MessageDigest进行MD5加密
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(testStr.getBytes());
            String md5 = getFormattedText(md.digest());
            System.out.println(md5);
            //使用MessageDigest进行SHA1加密
            MessageDigest md_sha = MessageDigest.getInstance("SHA-1");
            md_sha.update(testStr.getBytes());
            String sha1 = getFormattedText(md_sha.digest());
            System.out.println(sha1);
        }

        // 加密算法 把密文转成16进制的字符串形式
        public static String getFormattedText(byte[] bytes) {
            int len = bytes.length;
            StringBuilder buf = new StringBuilder(len * 2);
            for (int j = 0; j < len; j++) {
                buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
                buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
            }
            return buf.toString();
        }
    }

  • 相关阅读:
    20160205.CCPP体系详解(0015天)
    盘点各专业到古代都能干些啥
    一份简单的在 Linux下编译及调试 C 代码的指南
    WordPress Gravatar国内加载缓慢解决办法
    linux修改mysql字符集编码
    阿里合伙人邵晓锋:什么是创业者应该抵制的诱惑?
    6月27日云栖精选夜读:细数智能家居的痛点
    6月26日云栖精选夜读:成为一名Java高级工程师你需要学什么
    搭建百万级别邮件发送平台
    黑科技实验室:这些高级装备厉害了!
  • 原文地址:https://www.cnblogs.com/zt007/p/5945733.html
Copyright © 2011-2022 走看看