如何存储具有精确大小计算的AES_encrypt大小密码?

时间:2018-06-01 05:23:40

标签: c encryption cryptography aes caesar-cipher

我面临着AES加密文本的问题,需要一点帮助,这里有一个解释,我使用这个函数将纯文本转换为密文。

{{1}}

当我们使用加密时,此功能非常有效,但是当我尝试使用strlen计算密文长度时,我得不到确切的长度, 我有谷歌,并找到了关于密码文本打印的一些信息 使用%c等于长度len的循环。

我的查询是如何将密文存储在具有确切长度的文件中?因为strlen(密文)没有给出确切的长度,有什么方法可以存储密文?

任何帮助都将非常感谢:)提前致谢

1 个答案:

答案 0 :(得分:1)

这个接口的重点是*len现在包含密文的长度(我想它以纯文本的值开头)。 EncryptFinal添加填充,以便更改长度。如果普通的长度为16 密文的长度为32。

您无法使用strlen来计算长度。这可以在argv条目的情况下完成,因为这些是设计的字符串。 key更像是密码。这是一个非常加密的弱系统(硬编码盐,5轮等)。

ciphertext = aes_encrypt(&en, (unsigned char *)input[i], &len);之后 如果你想将密文写入文件,只需执行类似

的操作
 FILE *cipher = NULL; 
 cipherfile=fopen("mycipher.txt", "wb"); 
 if (NULL ==cipherfile){ /* error handling here */
 }
 if (1 != fwrite(ciphertext, len, 1, cipherfile)){ /* error handling */
 }
 close(cipherfile);

因为密文长度在len。原作者at GitHub可能会改为使用olen(现在它未被使用)。因此(更好)&olen可以在上面的两个调用(aes_encryptfwrite)中使用,然后len保持输入长度,可用于解密检查,等