现在的位置: 首页 > 综合 > 正文

java MD5加密

2013年09月15日 ⁄ 综合 ⁄ 共 1451字 ⁄ 字号 评论关闭

package test;

import java.security.*;

/*
 * TestEncrypt.java
 * Description: A test progrm to encrypt a string using MD5 or SHA-1,etc.
 */

public class MessageEncrypt {

 public static String Encrypt(String strSrc, String encName) {
  // parameter strSrc is a string will be encrypted,
  // parameter encName is the algorithm name will be used.
  // encName dafault to "MD5"
  // 得到MessageDigest对象
  MessageDigest md = null;
  MessageEncrypt mept = new MessageEncrypt();
  // 加密后的字符串
  String strDes = null;
  // 要加密的字符串字节型数组
  byte[] bt = strSrc.getBytes();
  try {
   if (encName == null || encName.equals("")) {
    encName = "MD5";
   }
   md = MessageDigest.getInstance(encName);
   md.update(bt);
   // 通过执行诸如填充之类的最终操作完成哈希计算
   strDes = mept.bytes2Hex(md.digest()); // to HexString
  } catch (NoSuchAlgorithmException e) {
   System.out.println("Invalid algorithm./n" + e.getMessage());
   return null;
  }
  return strDes;
 }

 // 将字节数组转换成16进制的字符串
 private String bytes2Hex(byte[] bts) {
  String des = "";
  String tmp = null;

  for (int i = 0; i < bts.length; i++) {
   tmp = (Integer.toHexString(bts[i] & 0xFF));
   if (tmp.length() == 1) {
    des += "0";
   }
   des += tmp;
  }
  return des;
 }
 
 public static void main(String[] args) {
  String strSrc = "可以加密汉字.Oh,and english";
  // String strSrc = "";
  System.out.println("Source String:" + strSrc);
  System.out.println("Encrypted String:");
  System.out.println("Use Def:" + Encrypt(strSrc, null));
  System.out.println("Use MD5:" + Encrypt(strSrc, "MD5"));
  System.out.println("Use SHA-1:" + Encrypt(strSrc, "SHA-1"));
  System.out.println("Use SHA-256:" + Encrypt(strSrc, "SHA-256"));
 }
}

抱歉!评论已关闭.