gpt4 book ai didi

c - 如何在 Openssl 中使用 AES 进行加密

转载 作者:太空狗 更新时间:2023-10-29 16:20:51 24 4
gpt4 key购买 nike

我正在尝试编写一个示例程序来使用 Openssl 进行 AES 加密。我尝试浏览 Openssl 文档(这很痛苦),但没有找到太多答案。我浏览了代码并找到了我编写一个小程序所使用的 API,如下所示(请省略行号)。我没有看到任何加密发生...我是否遗漏了什么?

PS:编译时我没有收到任何错误。

  1 #include <stdio.h> 
2 #include <openssl/aes.h>
3
4 static const unsigned char key[] = {
5 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
6 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
7 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
8 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
9 };
10
11 void main()
12 {
13 unsigned char text[]="virident";
14 unsigned char out[10];
15 unsigned char decout[10];
16
17 AES_KEY wctx;
18
19 AES_set_encrypt_key(key, 128, &wctx);
20 AES_encrypt(text, out, &wctx);
21
22 printf("encryp data = %s\n", out);
23
24 AES_decrypt(out, decout, &wctx);
25 printf(" Decrypted o/p: %s \n", decout);
26
27
28 }

请帮我解决这个问题......

最佳答案

查看此链接,其中包含使用 EVP API 使用 AES256CBC 加密/解密数据的示例代码。

https://github.com/saju/misc/blob/master/misc/openssl_aes.c

您还可以在我开发的详细开源项目中查看 AES256 CBC 的使用 https://github.com/llubu/mpro

代码足够详细并带有注释,如果您还需要更多关于 API 本身的解释,我建议您查看这本书Viega/Messier/Chandra 着的Network Security with OpenSSL(谷歌它,你会很容易找到它的 pdf 文件。)阅读第 6 章,它是特定于使用 EVP API 的对称密码的。这实际上帮助我理解了使用 EVP 的各种功能和结构背后的原因。

如果您想深入了解 Openssl 加密库,我建议从 openssl 网站(您机器上安装的版本)下载代码,然后查看 EVP 和 aeh 的实现API 实现。

根据您在上面发布的代码的另一个建议,我看到您正在使用 aes.h 中的 api而是使用 EVP。在此处查看这样做的原因 OpenSSL using EVP vs. algorithm API for symmetric crypto丹尼尔在我提出的一个问题中很好地解释了......

关于c - 如何在 Openssl 中使用 AES 进行加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com