由于通信加密涉及到较为复杂的加密算法和网络通信,因此需要结合相关的库和框架进行编写。以下是一个简单的使用 OpenSSL 库实现 AES 加密和解密的示例代码:
 ```c
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <openssl/aes.h>
 #define AES_KEYLEN 256
 void encrypt(char *input, char *key, char *output) {
     AES_KEY aeskey;
     AES_set_encrypt_key(key, AES_KEYLEN, &aeskey);
     AES_encrypt(input, output, &aeskey);
 }
 void decrypt(char *input, char *key, char *output) {
     AES_KEY aeskey;
     AES_set_decrypt_key(key, AES_KEYLEN, &aeskey);
     AES_decrypt(input, output, &aeskey);
 }
 int main() {
     char input[] = "Hello, world!";
     char key[] = "1234567890abcdef1234567890abcdef"; // 256-bit key
     char output[AES_BLOCK_SIZE];
     encrypt(input, key, output);
     printf("Encrypted: %s\n", output);
     char decrypted[sizeof(input)];
     decrypt(output, key, decrypted);
     printf("Decrypted: %s\n", decrypted);
     return 0;
 }
 ```
 该代码中使用了 OpenSSL 中的 AES 函数库,来实现对输入数据的加密和解密。其中,加密和解密都需要输入明文数据和密钥。在本例中,使用了 256 位的密钥进行加密和解密操作。加密后的结果是一个二进制字符串,可以通过 Base64 编码等方式转换为可读的字符串,以便进行网络传输。
 注意,通信加密涉及到的内容还有很多,比如加密算法的选择、密钥管理、随机数生成等。因此在实际应用中需要结合具体的场景和需求进行更为复杂的实现。










