日期:2014-05-19  浏览次数:20690 次

谁知道md5算法的用法
谁知道md5算法改如何使用,大家帮个忙了!
指点下了。

------解决方案--------------------
要使用md5算法,你先记得导入一个jar包commons-codec-1.3.jar
你到网上去下载,能下载到的。
这个jar里面有个digestUtil的一个类。里面有个md5Hex()的一个方法,还有md5()方法,还有几个方法
常用的是md5Hex() ,md5()这两个
md5Hex()可以对一个string进行加密,得到一个string的字符串。这个字符串没有规律。

很多的网银对接都是这样做的,用的大部分都是这两个方法。

个人愚见!
------解决方案--------------------
探讨
要使用md5算法,你先记得导入一个jar包commons-codec-1.3.jar
你到网上去下载,能下载到的。
这个jar里面有个digestUtil的一个类。里面有个md5Hex()的一个方法,还有md5()方法,还有几个方法
常用的是md5Hex() ,md5()这两个
md5Hex()可以对一个string进行加密,得到一个string的字符串。这个字符串没有规律。

很多的……

------解决方案--------------------
private static void Md5(String plainText ) { 
try { 
MessageDigest md = MessageDigest.getInstance("MD5"); 
md.update(plainText.getBytes()); 
byte b[] = md.digest(); 

int i; 

StringBuffer buf = new StringBuffer(""); 
for (int offset = 0; offset < b.length; offset++) { 
i = b[offset]; 
if(i<0) i+= 256; 
if(i<16) 
buf.append("0"); 
buf.append(Integer.toHexString(i)); 


System.out.println("result: " + buf.toString());//32位的加密 

System.out.println("result: " + buf.toString().substring(8,24));//16位的加密 

} catch (NoSuchAlgorithmException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 



------解决方案--------------------
探讨

要使用md5算法,你先记得导入一个jar包commons-codec-1.3.jar
你到网上去下载,能下载到的。
这个jar里面有个digestUtil的一个类。里面有个md5Hex()的一个方法,还有md5()方法,还有几个方法
常用的是md5Hex() ,md5()这两个
md5Hex()可以对一个string进行加密,得到一个string的字符串。这个字符串没有规律。

很多……

------解决方案--------------------
等于是你在本地把所有的参数拼接,

String str=a+b+c+密钥(他们给你的字符串);//这个的拼接有很多种,看他们文档怎么写,如果你是接口开发人员,那你想怎么定义就怎么定于,比如a参数与b参数之间加个,也可以;

然后用md5算一次得到一个span(签名),

String span=DigestUtil.md5Hex(str);

同时当你请求到filter的时候

他们也这样做

String a=request...
String b=request...
String c=request...

String str=a+b+c+密钥(他们根据你的id从他们数据库中查询你的密钥);
String span2=DigestUtil.md5Hex(str);

判断你的span跟他算的span2相等不,如果等则让你过去,dofilter
否则让你请求到一个错误的页面。

之所以这样做就是为了判断你的参数在中间有人做了手脚没有,或者看看是不是有些人故意去提交的。为了防止这些,于是别人用MD5,DES等算法,因为算法原理都一样,只要你放进去的东西一样,得到的结果也一样。
------解决方案--------------------
探讨

看错字了!在此想2楼道歉!
非常抱歉!

------解决方案--------------------
探讨

看错字了!在此想2楼道歉!
非常抱歉!

------解决方案--------------------
// 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;