我正在寻找AES的实现,我读到OPENSSL有最好的实现,所以我从openssl获取代码,aes 128 cbc,并在我的项目中使用它,因为我不想链接整个库为了一种方法。但是,似乎没有填充实现:
AES_cbc_encrypt
那么填充基本上是为了使数据具有密钥大小的多样性而添加的大小?
所以,如果我有以下,密钥大小是128位 - 16字节
char dataToEncrypt[73];
BOOL bResult = ReadFile(hDataFile, dataToEncrypt, 73, &bRead, 0);
我需要计算我需要添加多少零:
所以如果:73 % 16 != 0
我需要计算:73 / 16 = 4
,
然后添加一个块:4 + 1 = 5
,字节大小为16 * 5 = 80
,
将80 - 73 = 7
,7
零字节添加到缓冲区dataToEncrypt
的末尾,并加密为
AES_cbc_encrypt(dataToEncrypt, encrypted, 80, &dk, iv, AES_DECRYPT);
这是什么样的evp版本的假设?