C ++ xor介于2个字符串之间Null CBC

时间:2016-12-20 01:46:56

标签: c++ cryptography xor cbc-mode

我尝试使用Crypto ++实现AES的CBC方案。 我的问题来自这里:当我试图" xor" 2个char字符串,当我尝试与自己xor一个角色时,我遇到了一些问题。

unsigned char * xorOp(const char * s1,unsigned char * s2){    
     unsigned char *out = (unsigned char *) calloc(strlen(s1),sizeof(unsigned char));
     for(int i=0; s1[i]!=0;i++)
     {
          out[i] = s1[i] ^ s2[i];
          cout<<out[i]<<endl;
          if(out[i] == '\0') cout<<"not ok "<<s1[i]<<" "<<s2[i]<<endl;
     }

     return out;
}

通话:

unsigned char * encryptedXOR = xorOp(plainTextBlock.c_str(),iv);

其中plainTextBlock是一个16字节的块,来自纯文本,iv是一个初始化向量(16字节)。 之后,假设我的纯文本长度为130,填充144后,加密后必须为288。因此,由于xor,无法达到该维度。 请帮忙! 谢谢!

0 个答案:

没有答案