zoukankan      html  css  js  c++  java
  • MD5加密工具类

    1、创建一个工具类

    import java.security.MessageDigest;  
    
    /**  
     *  
    * 类名称:CipherUtil   
    * 类描述: 对数据进行16位的Md5加密
    * 创建人:Jxufe HeHaiYang
    * 创建时间:2015-1-19 下午06:33:26     
    * 修改备注:   
    * @version
     */
    public class CipherUtil{  
          
        //十六进制下数字到字符的映射数组  
        private final static String[] hexDigits = {"0", "1", "2", "3", "4",  
            "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};  
          
        /**
         * 
        * 方法名: generatePassword
        * 方法作用: TODO 对字符串进行加密
        * 创建人:Jxufe HeHaiYang
        * 创建时间:2015-1-20 下午09:58:05   
        * @param @param inputString
        * @param @return    
        * 返回值类型: String    
        * @throws
         */
        public static String generatePassword(String inputString){  
            return encodeByMD5(inputString);  
        }  
          
        /**
         *  
        * 方法名: validatePassword
        * 方法作用: TODO 验证输入的密码是否正确 
        * 创建人:Jxufe HeHaiYang
        * 创建时间:2015-1-20 下午09:57:52   
        * @param @param password
        * @param @param inputString
        * @param @return    
        * 返回值类型: boolean    
        * @throws
         */
        public static boolean validatePassword(String password, String inputString){  
            if(password.equals(encodeByMD5(inputString))){  
                return true;  
            } else{  
                return false;  
            }  
        }  
        /** 
         * 
        * 方法名: encodeByMD5
        * 方法作用: TODO 对字符串进行MD5加密
        * 创建人:Jxufe HeHaiYang
        * 创建时间:2015-1-20 下午09:57:38   
        * @param @param originString
        * @param @return    
        * 返回值类型: String    
        * @throws
         */
        private static String encodeByMD5(String originString){  
            if (originString != null){  
                try{  
                    //创建具有指定算法名称的信息摘要  
                    MessageDigest md = MessageDigest.getInstance("MD5");  
                    //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算  
                    byte[] results = md.digest(originString.getBytes());  
                    //将得到的字节数组变成字符串返回  
                    String resultString = byteArrayToHexString(results);  
                    return resultString.toUpperCase();  
                } catch(Exception ex){  
                    ex.printStackTrace();  
                }  
            }  
            return null;  
        }  
          
        /**  
         * 
        * 方法名: byteArrayToHexString
        * 方法作用: TODO 转换字节数组为十六进制字符串 
        * 创建人:Jxufe HeHaiYang
        * 创建时间:2015-1-20 下午09:57:29   
        * @param @param b
        * @param @return    
        * 返回值类型: String    
        * @throws
         */
        private static String byteArrayToHexString(byte[] b){  
            StringBuffer resultSb = new StringBuffer();  
            for (int i = 0; i < b.length; i++){  
                resultSb.append(byteToHexString(b[i]));  
            }  
            return resultSb.toString();  
        }  
          
        /**
         * 
        * 方法名: byteToHexString
        * 方法作用: TODO 将一个字节转化成十六进制形式的字符串
        * 创建人:Jxufe HeHaiYang
        * 创建时间:2015-1-20 下午09:57:17   
        * @param @param b
        * @param @return    
        * 返回值类型: String    
        * @throws
         */
        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];  
        }  
    }
    MD5 16位加密工具类

    2、调用方法

      MD5是单向加密算法,只可进行加密。

      使用时,可将输入字符串进行MD5加密,再与密码比对。

        CipherUtil cipher = new CipherUtil();  
        String pwd = cipher.generatePassword(password); 
  • 相关阅读:
    Java修炼之道--I/O
    配置tomcat资源文件软连接
    配置tomcat按天输出日志文件
    Ubuntu 安装rabbitmq
    Ubuntu下 JDK、tomcat、redis离线安装
    Nginx+tomcat负载均衡环境搭建
    Tomcat性能调优及性能测试工具配置
    Tomcat搭建https并与APR模式兼容
    IDEA开发工具小技巧整理
    Ubuntu下Nginx+fastDFS环境安装
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/4237556.html
Copyright © 2011-2022 走看看