AES加密算法对中文加密后,解密出现乱码

striveman 2012-03-29 09:42:32
大家好,我从网上找了一个AES加密算法的源代码,但是当被加密的字符串中出现中文,加密后,当进行解密时,
出现乱码,不能正常的解密,这是为啥?
【下面的代码中,mingwen出现中文,解密出现乱码】
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

TAesClass *aes = new TAesClass;
char mingwen[1024] = "cheng xiaopeng";
DWORD size = strlen(mingwen);
char miwen[1024];
char jiemi[1024];
UCHAR key[1024] = "xcy";
UCHAR *p = key;
aes->InitializePrivateKey(16, p); //进行初始化
aes->OnAesEncrypt((LPVOID)mingwen, size, (LPVOID)miwen); //进行加密
aes->OnAesUncrypt((LPVOID)miwen, (DWORD)sizeof(miwen),(LPVOID)jiemi); //进行解密

//打印信息
qDebug() << "mingwen:" << mingwen;
qDebug() << "miwen:" << miwen;
qDebug() << "jiemi:" <<jiemi;
free(aes);
aes = 0;
return a.exec();
}
...全文
2055 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
greengood 2013-02-27
  • 打赏
  • 举报
回复
前面对解密后的字符串定义为 char jiemi[1024]; 而后面的输出也是char型 qDebug() << "jiemi:" <<jiemi; 用w_char试试
赵4老师 2013-02-27
  • 打赏
  • 举报
回复
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode:0x4A 0x55,UTF-8:0xE5 0x95 0x8A

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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