zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    
    }
  • 相关阅读:
    由PhysicalFileProvider构建的物理文件系统
    Net Core WebApi单元测试
    多个项目使用NET Core
    ReactNative
    定制样式插入到ueditor
    ES6的Class
    Redis存储Session
    二叉 查找树 排序树 搜索树
    SignalR实现实时日志监控
    KNN(k-nearest neighbor的缩写)又叫最近邻算法
  • 原文地址:https://www.cnblogs.com/lxaic/p/5646369.html
Copyright © 2011-2022 走看看