我又来求助了,这次是编译问题,同样的代码放在不同的编译器里面,运行结果不一样。
代码已经放在附件里面了。可以编译成功,但是:
放在c-free3.5里面编译后运行结果跟期望值一样。
但是放在 vs2008中编译运行结果却是乱码。
我昨天晚上做了很久的实验,做不出结果来。求大神看看,这次我实在是找不出原因了。
AES加密算法(可用).zip
(4.42 KB)
void AES::KeyExpansion(unsigned char* key, unsigned char w[][4][4]) { int i,j,r,c; unsigned char rc[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36}; for(r=0; r<4; r++) { for(c=0; c<4; c++) { w[0][r][c] = key[r+c*4]; // 3 + 3*4 key的长度至少要有16个字符, 这里越界了。 } }