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

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

2017-11-8 15:52
4089

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
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
此算法不可逆
2017-11-8 16:11
0
雪    币: 22
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不会吧
2017-11-8 16:31
0
雪    币: 14
活跃值: (54)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
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;
}
2017-11-8 16:53
0
雪    币: 371
活跃值: (94)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
MyFileBuf[i]=((MyFileBuf[i]&0x0F)*16+(MyFileBuf[i]&0xF0)/16)^0x20;
2017-11-8 17:22
0
雪    币: 22
活跃值: (453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
heone int MyFileSize = 32; unsigned char MyFileBuf[TestMyFileSize] = { "12345678901234567890123 ...
3L  OK!!谢谢  ,  谢谢大家~  问题解决了 
2017-11-8 18:13
0
雪    币: 166
活跃值: (392)
能力值: ( LV13,RANK:357 )
在线值:
发帖
回帖
粉丝
7
 

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

int DecryptTest()
{

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


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