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

     

  • 相关阅读:
    体检套餐管理系统
    在这个与金沂同桌的日子里,我在北大青鸟学习了 第四章 深入类的方法 下面是我的上机3
    总结
    今天晚上雨夹雪,爱人狠心把我撇。今夜孤独一个人,只好来把代码写。 欢迎阅读我的第四章笔记 深入类的方法
    我在北京写代码 写出心中悲与喜 写出人间的悲欢离合 欢迎阅读 我的第三章 使用集合组织相关数据(泛型集合)
    在那个春暖花开的季节 今天微微的小雨 伴着轻轻的晚风我们一起来编写 员工考勤信息管理
    非泛型集合
    经理评分系统
    模仿魔兽登录界面 编程小练习
    【BZOJ 3524】【Poi2014】Couriers 可持久化线段树
  • 原文地址:https://www.cnblogs.com/mengyuxin/p/4813301.html
Copyright © 2011-2022 走看看