for(int i=0;i<str_yhmm.length();i++){
int ascii = (int)str_yhmm.charAt(i);
int result = ascii - (i+1) - 8;
char temp = (char)result;
str_return = str_return + String.valueOf(temp);

str_yhmm = str_return;
其中,送进的str_yhmm="01234"时,就出现错误。原因是单引号所引起的。
应该如何让其识别单引号。或者说,单引号该如何才能被正确看成一个字符呢?
谢谢!!!您也可以发邮件给本人:[email protected]
不胜感激!

解决方案 »

  1.   

    送进的str_yhmm="01234"进入for语句后,str_return = “'''''” 后,请大家指教呀
      

  2.   

    可以在进入for时先检查每个字符,如果是单引号,则/'把单引号组成的新的字符串,然后在做加密操作即可
      

  3.   

    进入for时,送进的字符str_yhmm="01234",并没有单引号。只通过for之后,就会出现str_return="'''''"即(str_yhmm ="'''''" )时,与数据库中,已经加密的相比较就出现不匹配的情况,(就提示密码不正确).
      

  4.   

    '的ascii码是39,0的是48,1的是49,2的是50
    48-(0+1)-8=39
    49-(1+1)-8=39
    ...
    你的公式中i每次加1,数字的ascii码也是每次加1,所以密文看起来是一样的,其实没问题,你换一组原文就知道了,只是这个加密算法也太简单了
      

  5.   

    '的ascii码是39,0的是48,1的是49,2的是50
    48-(0+1)-8=39
    49-(1+1)-8=39
    ...
    你的公式中i每次加1,数字的ascii码也是每次加1,所以密文看起来是一样的,密文一样,但是还是提示(密码出错)。
      

  6.   

    '的ascii码是39,0的是48,1的是49,2的是50
    48-(0+1)-8=39
    49-(1+1)-8=39
    ...
    公式中i每次加1,数字的ascii码也是每次加1,所以密文看起来是一样的(都是'''''),密文一样,与数据库中已经加密的(''''')相比较就出现不匹配的情况,(就提示密码不正确)