c - C 中的高级加密标准用法

标签 c encryption aes

我有这个资源,但我很难使用它 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/

相关文章:

c - syscall() 中的 xv6 rev6 奇怪代码

c - 如何在不使用 C 语言标准库的情况下显示字符串值?

c# - 如何在javascript中加密url并在c#中解密

security - 用于保护连接字符串的选项

java - AES 算法 JAVA 给出 : java. lang.IllegalArgumentException: key 大小无效

c - AES ECB 加密/解密只解密前 16 个字节

c - printf 中的宽度说明符不能正确处理重音字符

c - 如何通过管道发送文件结尾而不关闭管道?

c# - 从 .Net 到 Javascript 的安全 JSON 请求

delphi - 使用 DCrypt 在 Delphi (10 Seattle) 中使用 AES 加密字符串,使用 PHP/OpenSSL 解密