Crypto++的DES加密,Debug版时正常,Release版时不正常??????

hua_zhixing_ 2013-07-30 10:18:20
Debug版时,加密再解密能得到正确的结果,但Release版时,加密再解密前后结果不一样了。帮忙分析下,谢谢!

用的是zero padding

Win8 + VS2012开发环境

代码如下:
void DES_Process(const char *keyString, byte *block, size_t length, CryptoPP::CipherDir direction){  
using namespace CryptoPP;

byte key[DES_EDE3::KEYLENGTH];
memset(key, 0, DES_EDE3::KEYLENGTH);
memcpy(key, keyString, DES_EDE3::KEYLENGTH);
BlockTransformation *t = NULL;

if(direction == ENCRYPTION) {
t = new DES_EDE3_Encryption(key, DES_EDE3::KEYLENGTH);
}else {
t = new DES_EDE3_Decryption(key, DES_EDE3::KEYLENGTH);
}

int steps = length / t->BlockSize();
int offset;

for(int i=0; i<steps; i++){
offset = i * t->BlockSize();
t->ProcessBlock(block + offset);
}

delete t;
}
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hua_zhixing_ 2013-08-01
  • 打赏
  • 举报
回复
hua_zhixing_ 2013-07-31
  • 打赏
  • 举报
回复
又一个无人问津的贴

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧