MD5加密和二次加密的方法

来源:互联网 发布:豫章书院知乎 编辑:程序博客网 时间:2024/05/01 17:03
import java.security.MessageDigest;public class MD5andKL { // MD5加码。32位 public static String MD5(String inStr) {  MessageDigest md5 = null;  try {   md5 = MessageDigest.getInstance("MD5");  } catch (Exception e) {   System.out.println(e.toString());   e.printStackTrace();   return "";  }  char[] charArray = inStr.toCharArray();  byte[] byteArray = new byte[charArray.length];  for (int i = 0; i < charArray.length; i++)   byteArray[i] = (byte) charArray[i];  byte[] md5Bytes = md5.digest(byteArray);  StringBuffer hexValue = new StringBuffer();  for (int i = 0; i < md5Bytes.length; i++) {   int val = ((int) md5Bytes[i]) & 0xff;   if (val < 16)    hexValue.append("0");   hexValue.append(Integer.toHexString(val));  }  return hexValue.toString(); } // 可逆的加密算法 public static String KL(String inStr) {  // String s = new String(inStr);  char[] a = inStr.toCharArray();  for (int i = 0; i < a.length; i++) {   a[i] = (char) (a[i] ^ 't');    //t是加密的密钥,可变  }  String s = new String(a);  return s; } // 加密后解密 public static String JM(String inStr) {  char[] a = inStr.toCharArray();  for (int i = 0; i < a.length; i++) {   a[i] = (char) (a[i] ^ 't');     //t解密的密钥,与加密相同即可  }  String k = new String(a);  return k; }  // 测试主函数 public static void main(String args[]) {  String s = new String("a");  System.out.println("原始:" + s);  System.out.println("MD5后:" + MD5(s));  System.out.println("MD5后再加密:" + KL(MD5(s)));  System.out.println("解密为MD5后的:" + JM(KL(MD5(s)))); }}



原创粉丝点击