java实现md5加密和解密
java没有实现md5解密操作,但是有些网站可以完成解密。
也可以使用其他方法进行可逆的加密解密操作。
加密解密
package com.yy.utils;
import java.math.biginteger;
import java.security.messagedigest;
import java.security.nosuchalgorithmexception;
public class md5utils {
/**
* 使用md5的算法进行加密
*/
public static string md5(string plaintext) {
byte[] secretbytes = null;
try {
secretbytes = messagedigest.getinstance("md5").digest(
plaintext.getbytes());
} catch (nosuchalgorithmexception e) {
throw new runtimeexception("没有md5这个算法!");
}
string md5code = new biginteger(1, secretbytes).tostring(16);// 16进制数字
// 如果生成数字未满32位,需要前面补0
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
/**
* 可逆的的加密解密方法;两次是解密,一次是加密
* @param instr
* @return
*/
public static string convertmd5(string instr){
char[] a = instr.tochararray();
for (int i = 0; i < a.length; i++){
a[i] = (char) (a[i] ^ 't');
}
string s = new string(a);
return s;
}
public static void main(string[] args) {
string s = md5("1234");
system.out.println("md5后:"+s);
system.out.println("md5后再加密:"+convertmd5(s));
system.out.println("md5加密后解密:"+convertmd5(convertmd5(s)));
string s2 = convertmd5("12345");
system.out.println("可逆的加密解密方法之加密:"+s2);
system.out.println("可逆的加密解密方法之解密:"+convertmd5(s2));
}
}
运行结果

总结
要想实现md5的加密是可以实现的,解密的话截止博客发布时间之前,我目前只找到有md5解密的网站进行解密,没有发现怎么实现解密。
因此,我又找到了另一个可以实现解密和解密操作的方法,可以实现一次是加密,二次调用就是解密的操作
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论