public class JudgeUtil {
public boolean judge(String s1,String s2){
HashUtil hu = new HashUtil();
System.out.println("s1:" + s1);
System.out.println("s2:" + s2);
//int i = Integer.parseInt(s1);
String localHash = hu.createHash((new Integer(s1)).toString());
System.out.println("s1:" + localHash);
System.out.println("!!!!!!!!!!!!!!!!!!!! :" + localHash.equals(s2));
System.out.println("!!!!!!!!!!!!!!!!!!!! :" + localHash.equalsIgnoreCase(s2));
System.out.println("!!!!!!!!!!!!!!!!!!!! :" + localHash ==s2);

if(localHash.equals(s2)||localHash==s2){
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :" + "true");
return true;
}else{
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :" + "false");
return false;
}
//hu.createHash(s);
//return false;
}
// public static void main(String args[]){
// HashUtil hu = new HashUtil();
// hu.createHash(" ");
// System.out.println("sssssss :" + hu.createHash(null));
// }}
输出结果:
s1:10017
s2    :rXFapWlfdbHZprhbvyTJPWzMv8GgUCD0qLKs8xCg0ZvAvWlj7HLM8dsQC9MjNrYUWc74kuOD J1vml4xTun8HA==
s1Hash:rXFapWlfdbHZprhbvyTJPWzMv8GgUCD0qLKs8xCg0ZvAvWlj7HLM8dsQC9MjNrYUWc74kuOD+J1vml4xTun8HA==
!!!!!!!!!!!!!!!!!!!! :false
!!!!!!!!!!!!!!!!!!!! :false
false
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :false参数s2是一个加密后的hash值,s1Hash是对s1加密后的hash,难道加密后的值不能以判断字符穿的表住来判断是不是相同吗?

解决方案 »

  1.   

    HashUtil 还没用过,,来学习
      

  2.   

    s1和s2的原始数值是一样的,加密也的算法也是一样的
    url上传参数的时候还是一样的(和s1Hash一样,中间有个“+”)
    但是用request.getparameter("s2");接受以后 , s2就少了个"+"
    不知道什么原因
      

  3.   

    我把那个“+”replace了“+”好象到时候就给转译了
    换掉后没问题了