读书人

java中md5算法范例

发布时间: 2012-12-21 12:03:49 作者: rapoo

java中md5算法实例

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 id46a6f3c92d33264c365fbb495afbe7a639this id
?

?

?

读书人网 >编程

热点推荐