JAVA MD5加密

  1. /** 
  2.  * Java密码加密 
  3.  * Java代码 
  4.  */  
  5. package com.baobaotao.common;  
  6.   
  7. import java.security.MessageDigest;  
  8.   
  9. /** 
  10.  * 对密码进行加密和验证的类 
  11.  */  
  12. public class CipherUtil {  
  13.   
  14.     // 十六进制下数字到字符的映射数组  
  15.     private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",  
  16.             "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };  
  17.   
  18.     /** * 把inputString加密 */  
  19.     public static String generatePassword(String inputString) {  
  20.         return encodeByMD5(inputString);  
  21.     }  
  22.   
  23.     /** 对字符串进行MD5加密 */  
  24.     private static String encodeByMD5(String originString) {  
  25.         if (originString != null) {  
  26.             try {  
  27.                 // 创建具有指定算法名称的信息摘要  
  28.                 MessageDigest md = MessageDigest.getInstance("MD5");  
  29.                 // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算  
  30.                 byte[] results = md.digest(originString.getBytes());  
  31.                 // 将得到的字节数组变成字符串返回  
  32.                 String resultString = byteArrayToHexString(results);  
  33.                 return resultString.toUpperCase();  
  34.             } catch (Exception ex) {  
  35.                 ex.printStackTrace();  
  36.             }  
  37.         }  
  38.         return null;  
  39.     }  
  40.   
  41.     /** 
  42.      * 转换字节数组为十六进制字符串 
  43.      *  
  44.      * @param 字节数组 
  45.      * @return 十六进制字符串 
  46.      */  
  47.     private static String byteArrayToHexString(byte[] b) {  
  48.         StringBuffer resultSb = new StringBuffer();  
  49.         for (int i = 0; i < b.length; i++) {  
  50.             resultSb.append(byteToHexString(b[i]));  
  51.         }  
  52.         return resultSb.toString();  
  53.     }  
  54.   
  55.     /** 将一个字节转化成十六进制形式的字符串 */  
  56.     private static String byteToHexString(byte b) {  
  57.         int n = b;  
  58.         if (n < 0)  
  59.             n = 256 + n;  
  60.         int d1 = n / 16;  
  61.         int d2 = n % 16;  
  62.         return hexDigits[d1] + hexDigits[d2];  
  63.     }  
  64.       /** 测试 */  
  65.     public static void main(String[] args){  
  66.         String pwd = CipherUtil.generatePassword("123456");  
  67.         System.out.println(pwd);  
  68.     }  
  69. }  

 

posted on   大西瓜3721  阅读(48)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2020-03-04 基于DDD的现代ASP.NET开发框架--ABP系列文章总目录
2020-03-04 ABP.NET框架
2016-03-04 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

导航

点击右上角即可分享
微信分享提示