MD5加密和二次加密的方法
来源:互联网 发布:qq看不见对方网络状态 编辑:程序博客网 时间:2024/05/01 15:29
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] ^ 'a'); //a是加密的密钥,可变
}
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] ^ 'a'); //a解密的密钥,与加密相同即可
}
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))));
}
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] ^ 'a'); //a是加密的密钥,可变
}
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] ^ 'a'); //a解密的密钥,与加密相同即可
}
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))));
}
}
测试结果:
0 0
- MD5加密和二次加密的方法
- MD5加密和二次加密的方法
- MD5二次加密的小例子
- md5的加密方法:
- md5和aesc加密方法
- md5加密和sha加密的使用
- 一个MD5的加密方法
- GRUB的MD5加密方法
- Delphi2010 MD5加密的方法
- MD5进行加密的方法
- c# 的MD5加密方法
- 简单的MD5加密方法
- 破解md5加密的方法
- Java-MD5加密的方法
- JavaScript MD5加密的方法
- Delphi2010 MD5加密的方法
- MD5的加密和解密
- MD5加密的算法和javascript实现MD5加密源码
- 动态规划(DP)算法的介绍
- 【数据挖掘导论】——绪论
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——移植u-boot-spl.bin(时钟初始化)
- 黑马程序员Java学习日记(7)GUI
- ural 1076 Trash 二分图KM
- MD5加密和二次加密的方法
- LeetCode : Combination Sum
- poj.1837
- Nginx:配置指南(2)
- 数据结构-拓扑排序
- JAVE的优势
- C++ Level-Order Traversal
- 二叉树的建立
- 啥? ++[[]][+[]]+[+[]] = 10?