php 与 java 中文 md5 不一样?
项目组要做个组件与别的公司进行通信,他们那边是php 开发,我们这边的是java,url 地址是md5加密,我每次调取时,都发生错误..这个问题我困扰二三天,最后发现java 中中文的md5与php 中的中文 md5 不一样,英文完全没有问题...
解决方法一:php 与 java 两边自己 写md5算法..
解决方法二:通过java 调用php 页面,url 参数生成md5 格式,再与别的公司进行通信
代码如下:
java 端 :
public static string encoderbymd5(string str,string url){
str=java.net.urlencoder.encode(str,gb2312); commhttpinterface http = new commhttpinterface();
return http.phprequest(url+?+str);
}
public static string phprequest(string url){
try{
httpclient client = new httpclient();
postmethod post = new postmethod(url);//使用post方式提交数据
post.setrequestheader(content-type,text/html;charset=gb2312);
client.executemethod(post);
string response = new string(post.getresponsebodyasstring().getbytes(gb2312));//打印结果页面
post.releaseconnection();
return response;
} catch(ioexception e){
e.printstacktrace();
return null;
}
}
php 端: