我有一个简单的问题:前16个字节未正确加密/解密。 有什么问题?
加密函数将其写入文件,解密函数再次从文件中读取它。
int inum = 0;
unsigned char ckey [] = "3q43*_;fsdf#ßß94";
unsigned char civ [] = "sfgsjni274z#-,.-";
加密:
unsigned char outdata [4096 + 1];
AES_KEY key;
AES_set_encrypt_key(ckey, 128, &key);
AES_cfb128_encrypt((const unsigned char *) "aaaaaaaaaaaaaaaaa", outdata, 17, &key, civ, &inum, AES_ENCRYPT);
解密:
indata
由读取函数
AES_KEY key;
AES_set_encrypt_key(ckey, 128, &key);
AES_cfb128_encrypt(indata, outdata, iSize, &key, civ, &inum, AES_DECRYPT);
输出将是:
‡~MÚjô±¦¤,`Ð,-âa
原始字符串长度为17个字节,因此最后一个字节是正确的。
前16个字节后面的字符总是正确的,我已经用多个字符串对它进行了测试。