MD5 即:Message-Digest Algorithm 5 (信息-摘要算法),可以保证信息传输的一致,是一种常用的散列算法之一,也可以看做是哈希算法,它将数据运算为128-bits长度的值,用32位的十六进制数字表示。
md5加密用法:
String getStringFromEntryInternal(T entry) {
String s = getStringFromEntry(entry);
return StringUtil.signContent(s, getSalt());
}
/**
* salt在编码后的串里不可见
*
* @return
*/
public String getSalt() {
return StringUtil.EMPTY;
}
public class StringUtil {
public static final String EMPTY = "";
public static String signContent(String rawContent, String salt) {
String md5 = md5(rawContent + salt);
return rawContent + md5;
}
}
md5解密算法:
T getEntryFromStringInternal(String str) {
String raw = StringUtil.getRawContent(str, getSalt());
// System.out.println("getEntryFromStringInternal:" + str);
if (raw != null)
return getEntryFromString(raw);
else {
return null;
}
}
public static String getRawContent(String signedContent, String salt) { // rawContent这里作为一个输出参数
String rtn = null;
if (signedContent == null)
return null;
int len = signedContent.length();
if (len <= 32)
return null;
String md5 = signedContent.substring(len - 32);// 最后32位
// System.out.println("validateSignedContent.md5:" + md5);
rtn = signedContent.substring(0, len - 32);// 原始内容
// System.out.println("validateSignedContent.rtn:" + rtn);
if (md5.equalsIgnoreCase(md5(rtn + salt)))
return rtn;
return null;
}
测试:
public class TTTT {
public static void main(String[] args){
String sss="this id";
String mds55=StringUtil.signContent(sss, "");
System.out.println(mds55);
System.out.println(mds55.length());
String unmds55=StringUtil.getRawContent(mds55, "");
System.out.println(unmds55);
}
}
测试结果:
this id46a6f3c92d33264c365fbb495afbe7a6
39
this id
分享到:
相关推荐
对接接口时用到的一种常用加密算法,常用于验证签名,使用shiro-all-1.4.1.jar,可自行下载
Md5的全称是message-digest algorithm 5(信息-摘要算法) 算法描述 对md5算法简要的叙述可以为:md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个...
主要介绍了java 实现MD5加密算法的简单实例的相关资料,这里提供实例帮助大家应用这样的加密算法,需要的朋友可以参考下
这个是以md5加密32位小写具体算法实例。可直接用于云mas的HTTP、和webservice接口。
MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。 当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的...
MD5算法.txtMD5算法.txtMD5算法.txt
本文实例分析了Android编程之MD5加密算法。分享给大家供大家参考,具体如下: Android MD5加密算与J2SE平台一模一样,因为Android 平台支持 java.security.MessageDigest这个包。实际上与J2SE平台一模一样。 算法...
md5,aes,des,des3,rsa,sha,base64加密解密实例,含有所需jar包,注释详细,导入项目直接可用。
主要介绍了java实现的MD5摘要算法,结合完整实例形式分析了java实现md5单项加密的具体步骤与相关操作技巧,需要的朋友可以参考下
本实例是java利用MD5进行加密的例子,md5加密为不可逆转加密方式
主要介绍了java实现MD5加密算法的实例代码,有需要的朋友可以参考一下
//本实例的主要作用是指定的字符串利用MD5算法进行加密,然后将加密后获得的字符串转换成字符串数组, //再由字符数组转换成十六进制的字符串,形成最终的密码。然后随便输入一个字符串,如果该字符串经过 //MD5加密...
机器学习算法实例代码
您可能感兴趣的文章:MySQL加密和解密实例详解Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享PHP MySQL应用中使用XOR运算加密算法分享MySQL 加密/压缩函数mysql双向加密解密方式用法详解MySQL 整表加密...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
下面小编就为大家带来一篇Java与C++实现相同的MD5加密算法简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
本文实例讲述了Android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下: 做个记录(这里只是Java层的签名校验,java层容易被破解,我建议apk加固下) 获取md5值来进行Apk签名校验...
主要介绍了Java计算文本MD5加密值的方法,结合实例形式分析了Java基于security实现md5加密算法进行文本加密相关操作技巧,需要的朋友可以参考下