我有这个资源,但我很难使用它 http://www.hoozi.com/Articles/AESEncryption.htm 我似乎无法在我的代码中使用它,因为它只加密它的前 16 个字符,我希望有人帮我加密那个字符 *
char *Data = NULL;
asprintf(&Data, "%s|%s", var1 /* Unknown Length */, var2);
使用 asprintf 后请使用任何代码示例来加密数据?
谢谢...
最佳答案
AES 是 block 加密。它一次在一个 block 上工作。一种可能性是为输入中的每个 16 字节 block 调用一次。当您到达输入的末尾时,将最后一 block 填充到 16 个字节,并对其进行加密。这称为“电子密码本”(ECB) 模式。它的缺点是如果有两个(或更多)相同的输入 block ,它们将产生相同的输出。在这种情况下,欧洲央行很少被推荐。
还有一些其他的modes of operation避免那个问题。我的建议是寻找另一个已经实现它们的库(例如,我很确定 beecrypt 实现了)。不幸的是,在不知道自己在做什么的情况下,很难说哪个最合适,但我开始会将该页面上的 CBC 和 CFB 视为两种合理的可能性。
关于c - C 中的高级加密标准用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819560/