• MD5加密


    import java.security.MessageDigest;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    
    public class MD5 {
    
        private final Log logger = LogFactory.getLog(MD5.class);
    
        private String inStr;
    
        private MessageDigest md5;
    
        /* 下面是构造函数 */
        public MD5(String inStr) {
            this.inStr = inStr;
            try {
                this.md5 = MessageDigest.getInstance("MD5");
            } catch (Exception e) {
                logger.fatal("", e);
            }
        }
    
        /* 下面是关键的md5算法 */
        public String compute() {
    
            char[] charArray = this.inStr.toCharArray();
    
            byte[] byteArray = new byte[charArray.length];
    
            for (int i = 0; i < charArray.length; i++)
                byteArray[i] = (byte) charArray[i];
    
            byte[] md5Bytes = this.md5.digest(byteArray);
    
            StringBuffer hexValue = new StringBuffer();
    
            for (int i = 0; i < md5Bytes.length; i++) {
                int val = ((int) md5Bytes[i]) & 0xff;
                if (val < 16)
                    hexValue.append("0");
                hexValue.append(Integer.toHexString(val));
            }
    
            return hexValue.toString();
        }
    
        /* 下面是关键的md5算法 */
        public String computeWithUTF8() {
            try {
                byte[] btInput = this.inStr.getBytes("UTF-8"); // 必须制定utf-8字符集。
                MessageDigest mdInst = MessageDigest.getInstance("MD5");
                mdInst.update(btInput);
                byte[] md = mdInst.digest();
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < md.length; i++) {
                    int val = ((int) md[i]) & 0xff;
                    if (val < 16) {
                        sb.append("0");
                    }
                    sb.append(Integer.toHexString(val));
                }
                return sb.toString();
            } catch (Exception e) {
                return null;
            }
        }
    
    }
  • 相关阅读:
    bug篇——generator逆向出现配置文件不存在
    安装篇——Linux下安装mysql
    安装篇——linux服务器安装jdk、mysql、nginx、fastdfs
    基础篇——浅谈Base64
    基础篇—AOP
    基础篇—List、Set、Map
    工具类篇——I/O读取文件
    基础篇——Spring之XML配置Bean的属性注入
    简单了解malloc分配内存
    通过指针形参修改实参的值2
  • 原文地址:https://www.cnblogs.com/lxaic/p/5646369.html
Copyright © 2020-2023  润新知