首页 > 代码库 > JAVA中简单的MD5加密类(MD5Utils)

JAVA中简单的MD5加密类(MD5Utils)

MD5加密分析:
技术分享
 技术分享
JDK API:
技术分享
 技术分享
获取对象的API:
技术分享
 技术分享
加密的API:
技术分享
 技术分享
 1 package cn.utils; 2  3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmException; 5  6 /** 7  * @author CQY13 MD5加密工具类 8  */ 9 public class MD5Utils {10 11     /**12      * 获取MD5加密13      * 14      * @param pwd15      *            需要加密的字符串16      * @return String字符串 加密后的字符串17      */18     public static String getPwd(String pwd) {19         try {20             // 创建加密对象21             MessageDigest digest = MessageDigest.getInstance("md5");22 23             // 调用加密对象的方法,加密的动作已经完成24             byte[] bs = digest.digest(pwd.getBytes());25             // 接下来,我们要对加密后的结果,进行优化,按照mysql的优化思路走26             // mysql的优化思路:27             // 第一步,将数据全部转换成正数:28             String hexString = "";29             for (byte b : bs) {30                 // 第一步,将数据全部转换成正数:31                 // 解释:为什么采用b&25532                 /*33                  * b:它本来是一个byte类型的数据(1个字节) 255:是一个int类型的数据(4个字节)34                  * byte类型的数据与int类型的数据进行运算,会自动类型提升为int类型 eg: b: 1001 1100(原始数据)35                  * 运算时: b: 0000 0000 0000 0000 0000 0000 1001 1100 255: 000036                  * 0000 0000 0000 0000 0000 1111 1111 结果:0000 0000 0000 000037                  * 0000 0000 1001 1100 此时的temp是一个int类型的整数38                  */39                 int temp = b & 255;40                 // 第二步,将所有的数据转换成16进制的形式41                 // 注意:转换的时候注意if正数>=0&&<16,那么如果使用Integer.toHexString(),可能会造成缺少位数42                 // 因此,需要对temp进行判断43                 if (temp < 16 && temp >= 0) {44                     // 手动补上一个“0”45                     hexString = hexString + "0" + Integer.toHexString(temp);46                 } else {47                     hexString = hexString + Integer.toHexString(temp);48                 }49             }50             return hexString;51         } catch (NoSuchAlgorithmException e) {52             // TODO Auto-generated catch block53             e.printStackTrace();54         }55         return "";56     }57 58     /**59      * @param args60      */61     public static void main(String[] args) {62         String pwd = MD5Utils.getPwd("abc");63         System.out.println(pwd);64     }65 66 }

 技术分享

 
技术分享

JAVA中简单的MD5加密类(MD5Utils)