您好!
我正在尝试加密和解密加载到文件系统的大(~250KB)二进制 MCU 映像。
示例方案类似于 普通二进制-->加密二进制--> >解密二进制(最后解密的二进制数应等于普通二进制数)。
由于存储器限制、我正在尝试按文件的块数据(每个块256字节)对块进行加密和解密。
加密方案1:读取256 KB 正常二进制数据加密并存储到 FS。 (重复此操作、直到整个 Normal 二进制文件加密)。
解密方案2:读取256 KB 加密数据解密并存储到 FS。(重复此操作、直到解密完完整的加密二进制文件)。
问题是最终解密的二进制文件的最后一个块不等于正常二进制文件。 二进制数据的最后一个块已损坏。
请检查以下实际二进制数据与解密二进制数据之间的比较。
我是否有任何标准方法可以处理 AES 加密/解密的最后一个数据块。
正常的二进制文件大小为 2,08,515字节。
请查找 AES 配置:
#define PVT_KEY "abcdefghijklmn12" CryptoCC32XX_handle crypto_handle; CryptoCC32XX_EncryptMethod method = CryptoCC32XX_AES_ECB;//不需要 IV CryptoCC32XX_EncryptParams Params; params.AES.keysize = CryptoCC32XX_AES_KEY_SIZE_128bit; params.AES.pkey =(const uint8_t *) PVT_key;//目标密钥长度应作为目标密钥大小 //params.AES.pIV =(void *) PointerToInitVector;
注意:我还尝试了使用 相同二进制文件的在线 AES 加密/解密(aes.online-domain-tools.com/)、但仍然发现了相同的问题。
请帮助我解决问题。
