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"));
        }
     
    }

     

  • 相关阅读:
    77777 77777(2) WriteUp 绕waf技巧学习
    简单sql注入学到的延时盲注新式攻击
    代码审计 => 74cms_v3.5.1.20141128 一系列漏洞
    mysql注入新姿势(数字与字符编码注入) hex,conv
    Netty 3升级Netty4实践
    微信小程序获取用户openid,头像昵称信息,后台java代码
    转:JSP 分页显示数据 (Oracle)
    从数据库提取数据通过jstl显示在jsp页面上
    转:微信生成二维码java
    转:微信开发获取地理位置实例(java,非常详细,附工程源码)
  • 原文地址:https://www.cnblogs.com/mengyuxin/p/4813301.html
Copyright © 2011-2022 走看看