首页
社区
课程
招聘
[求助]加密算法 只有两行 谁能帮写下解密的 ~ 在线等哈~
2017-11-8 15:52 3540

[求助]加密算法 只有两行 谁能帮写下解密的 ~ 在线等哈~

2017-11-8 15:52
3540

int MyFileSize = 32;

unsigned char  MyFileBuf[TestMyFileSize] =  { "1234567890123456789012345678901" };

int EncryptTest()
{

	for (int i = 0; i < TestMyFileSize; i++)
	{
		MyFileBuf[i] =  MyFileBuf[i] ^ 0x20;
		MyFileBuf[i] = (MyFileBuf[i] << 4) + (MyFileBuf[i] >> 4);
	}
	return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 225
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rock 2017-11-8 16:11
2
0
此算法不可逆
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2017-11-8 16:31
3
0
不会吧
雪    币: 14
活跃值: (54)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
heone 2017-11-8 16:53
4
0
int  MyFileSize  =  32;
 
unsigned  char    MyFileBuf[TestMyFileSize]  =    {  "1234567890123456789012345678901"  };
 
int  EncryptTest()
{
 
        for  (int  i  =  0;  i  <  TestMyFileSize;  i++)
        {
               
                MyFileBuf[i]  =  (MyFileBuf[i]  <<  4)  +  (MyFileBuf[i]  >>  4);
                MyFileBuf[i]  =    MyFileBuf[i]  ^  0x20;
        }
        return  0;
}
雪    币: 371
活跃值: (94)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
darmao 1 2017-11-8 17:22
5
0
MyFileBuf[i]=((MyFileBuf[i]&0x0F)*16+(MyFileBuf[i]&0xF0)/16)^0x20;
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2017-11-8 18:13
6
0
heone int MyFileSize = 32; unsigned char MyFileBuf[TestMyFileSize] = { "12345678901234567890123 ...
3L  OK!!谢谢  ,  谢谢大家~  问题解决了 
雪    币: 152
活跃值: (377)
能力值: ( LV13,RANK:357 )
在线值:
发帖
回帖
粉丝
瞧红尘 2 2017-11-9 08:53
7
0
 

#
异或,字节高低位交换都是完全可逆的, 代码交换一下计算流程就好了

int DecryptTest()
{

    for (int i = 0; i < TestMyFileSize; i++)
    {
        MyFileBuf[i] = (MyFileBuf[i] << 4) | (MyFileBuf[i] >> 4);
        MyFileBuf[i] =  MyFileBuf[i] ^ 0x20; //上下行交换一下
    }
    return 0;
}
雪    币: 201
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Sammer 2017-11-9 20:52
8
0
    ( (X^0x20)  (<<4) ) +  ( (X^0x20)  (>>4) )  =  Y      //  加密 

  //  Sammer推导 
  1、  (  X  (^0x20)  )(  (<<4)  +  (>>4)  ) = Y
  2、  (  X  (^0x20)  )  = Y( (<<4)  +  (>>4) )  ====>>  (X  (^0x20)  )  =  (Y<<4)+  (Y>>4)
  3、  ( (Y<<4)  +  (Y>>4) )  (^0x20)  =  X    //  解密


加的括号都有意义,临时变量、立即数对运算符的一些规律
游客
登录 | 注册 方可回帖
返回