zoukankan      html  css  js  c++  java
  • JAVA MD5加密

    package com.demo;
     
    import java.security.MessageDigest;
     
    public class MD5Util {
     
        private static final String ALGORITHM = "MD5";
     
        private static final char[] HEX_DIGITS = { '0''1''2''3''4''5',
                '6''7''8''9''a''b''c''d''e''f' };
     
        /**
         * encode string
         *
         * @param algorithm
         * @param str
         * @return String
         */
        public static String encode(String algorithm, String str) {
            if (str == null) {
                return null;
            }
            try {
                MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
                messageDigest.update(str.getBytes());
                return getFormattedText(messageDigest.digest());
            catch (Exception e) {
                throw new RuntimeException(e);
            }
     
        }
     
        /**
         * encode By MD5
         *
         * @param str
         * @return String
         */
        public static String getStringMD5String(String str) {
            if (str == null) {
                return null;
            }
            try {
                MessageDigest messageDigest = MessageDigest.getInstance(ALGORITHM);
                messageDigest.update(str.getBytes());
                return getFormattedText(messageDigest.digest());
            catch (Exception e) {
                throw new RuntimeException(e);
            }
     
        }
     
        /**
         * Takes the raw bytes from the digest and formats them correct.
         *
         * @param bytes
         *            the raw bytes from the digest.
         * @return the formatted bytes.
         */
        private 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();
        }
     
        public static void main(String[] args) {
            System.out.println(MD5Util.getStringMD5String("123"));
    //      System.out.println("111111 MD5  :"
    //              + EncoderHandler.encode("MD5", "111111"));
    //      System.out.println("111111 SHA1 :"
    //              + EncoderHandler.encode("SHA1", "111111"));
        }
     
    }

     

  • 相关阅读:
    qt 数据库操作总结
    Pro*C编程研究一:从.pc到.exe
    通过OCCI连接oracle(C++)
    数据库操作通用类
    一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER
    如何卸载oracle11g
    ORA-12541:TNS:无监听程序
    Qt 线程基础(QThread、QtConcurrent等) 2
    QThreadPool类和QtConcurrent命名空间
    AE 向已存在的要素类中添加字段
  • 原文地址:https://www.cnblogs.com/mengyuxin/p/4813301.html
Copyright © 2011-2022 走看看