• (Java) Md5Utils


    package com.vcgeek.hephaestus.utils;
    
    import java.security.MessageDigest;
    
    public class Md5Utils {
    
        
        
        /** 16进制的字符数组 */
        private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d",
                "e", "f" };
    
        /**
         * 
         * 
         * @param source
         *            需要加密的原字符串
         * @param encoding
         *            指定编码类型
         * @param uppercase
         *            是否转为大写字符串
         * @return
         */
        public static String MD5Encode(String source, String encoding, boolean uppercase) {
        
            String result = null;
            try {
                result = source;
                // 获得MD5摘要对象
                MessageDigest messageDigest = MessageDigest.getInstance("MD5");
                // 使用指定的字节数组更新摘要信息
                messageDigest.update(result.getBytes(encoding));
                // messageDigest.digest()获得16位长度
                result = byteArrayToHexString(messageDigest.digest());
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return uppercase ? result.toUpperCase() : result;
        }
    
        /**
         * 转换字节数组为16进制字符串
         * 
         * @param bytes
         *            字节数组
         * @return
         */
        private static String byteArrayToHexString(byte[] bytes) {
            StringBuilder stringBuilder = new StringBuilder();
            for (byte tem : bytes) {
                stringBuilder.append(byteToHexString(tem));
            }
            return stringBuilder.toString();
        }
    
        /**
         * 转换byte到16进制
         * 
         * @param b
         *            要转换的byte
         * @return 16进制对应的字符
         */
        private static String byteToHexString(byte b) {
            int n = b;
            if (n < 0) {
                n = 256 + n;
            }
            int d1 = n / 16;
            int d2 = n % 16;
            return hexDigits[d1] + hexDigits[d2];
        }
    
    }
  • 相关阅读:
    JSP内置对象
    java 中list还有array的区别
    js动态修改界面碰见的疑惑
    购物多条件商品查询逻辑处理
    数据库信息备份
    关于毕设的一些小问题
    在<a></a>标签中正确调用javaScript脚本
    oracle实训0705经验
    第十五天学习进度--数列找规律算法(预测算法)(1)
    第十四天学习进度--相关系数和显著水平
  • 原文地址:https://www.cnblogs.com/zyulike/p/10636253.html
Copyright © 2020-2023  润新知