md5加密

JAVA对密码加密

  (2009-11-15 17:55:41)
标签: 

杂谈

 
  1. package com.sunnylocus.util;   
  2.   
  3. import java.security.MessageDigest;   
  4.   
  5.   
  6. public class CipherUtil{   
  7.        
  8.     //十六进制下数字到字符的映射数组   
  9.     private final static String[] hexDigits = {"0", "1", "2", "3", "4",   
  10.         "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};   
  11.        
  12.       
  13.     public static String generatePassword(String inputString){   
  14.         return encodeByMD5(inputString);   
  15.      }   
  16.        
  17.         
  18.     public static boolean validatePassword(String password, String inputString){   
  19.         if(password.equals(encodeByMD5(inputString))){   
  20.             return true;   
  21.          } else{   
  22.             return false;   
  23.          }   
  24.      }   
  25.       
  26.     private static String encodeByMD5(String originString){   
  27.         if (originString != null){   
  28.             try{   
  29.                 //创建具有指定算法名称的信息摘要   
  30.                  MessageDigest md = MessageDigest.getInstance("MD5");   
  31.                 //使用指定的字节数组对摘要进行最后更新,然后完成摘要计算   
  32.                 byte[] results = md.digest(originString.getBytes());   
  33.                 //将得到的字节数组变成字符串返回   
  34.                  String resultString = byteArrayToHexString(results);   
  35.                 return resultString.toUpperCase();   
  36.              } catch(Exception ex){   
  37.                  ex.printStackTrace();   
  38.              }   
  39.          }   
  40.         return null;   
  41.      }   
  42.        
  43.       
  44.     private static String byteArrayToHexString(byte[] b){   
  45.          StringBuffer resultSb = new StringBuffer();   
  46.         for (int i = 0; i < b.length; i++){   
  47.              resultSb.append(byteToHexString(b[i]));   
  48.          }   
  49.         return resultSb.toString();   
  50.      }   
  51.        
  52.       
  53.     private static String byteToHexString(byte b){   
  54.         int n = b;   
  55.         if (n < 0)   
  56.              n = 256 + n;   
  57.         int d1 = n / 16;   
  58.         int d2 = n % 16;   
  59.         return hexDigits[d1] + hexDigits[d2];   
  60.      }   
  61.  

 

Java代码
  1. package com.sunnylocus.util;   
  2.   
  3. public class Main {   
  4.     public static void main(String[] args) {   
  5.          String pwd1="123";   
  6.          String pwd2="";   
  7.          CipherUtil cipher = new CipherUtil();   
  8.          System.out.println("未加密的密码:"+pwd1);   
  9.         //将123加密   
  10.          pwd2 = cipher.generatePassword(pwd1);   
  11.          System.out.println("加密后的密码:"+pwd2);   
  12.            
  13.          System.out.print("验证密码是否下确:");   
  14.         if(cipher.validatePassword(pwd2, pwd1)) {   
  15.              System.out.println("正确");   
  16.          }   
  17.         else {   
  18.              System.out.println("错误");   
  19.          }   
  20.      }   
  21.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值