zoukankan      html  css  js  c++  java
  • 刚才两段代码的逆,我实在写不出来

     得出的值都那么大,求逆太困难了,都不符合逻辑了。哎,我太菜了。。。
     
    void fun3(char *str , char *outstr)
    {
     char *temp = str;
     int j = 0;
     for( int i = 0 ; ; i++ )
     {
      if( temp == '' )
      {
       break;
      }
      temp -= 0x30;
      j = ( j * 10 ) + (int)temp ;
     }
     j = j ^ 0x1234;
     
     //先逆异或
      j = j ^ 0x5678;
     //看能除出多少个'A'
     int k = j / 0x41;
     //将余数除'Z'-'A',看结果是否需要拆开
     int l = (j % 0x41) / 0x19 ;
     //有多少个A就开多少块空间,因为是算A,所以不够可以往上加
     //如果算Z的话,就可能出不可输入的字符
     char * out = (char*)malloc(sizeof(char)*(k+2));
     //先填'Z'
     for( i = 0 ; i < l ; i++ )
     {
      out = 0x41 + 0x19;
     }
     //再填'A'
     for( ; i < k ; i++ )
     {
      out = 0x41 ;
     }
     //最后填'Z'和A中间的余数
     out = 0x41 + ((j / 0x41) % 0x19) ;
     //最后补''
     out[i+1] = '';
     outstr = out;
     //但是这样总是出错
    }
     
    我就是这么求逆的,但是总是报错,总是出错,因为值太大了
  • 相关阅读:
    poj 2251
    poj 1321
    poj 2777
    poj 3468
    poj 2318
    javascript
    buhui
    swift 构造器
    mac上不了网
    字体
  • 原文地址:https://www.cnblogs.com/suanguade/p/4038246.html
Copyright © 2011-2022 走看看