C语言实现AES加密通常需要借助开源库,OpenSSL提供了完整的加密解决方案。以下示例代码展示了如何调用OpenSSL的AES功能模块完成数据加密。

#include #include #include // 加密函数int aes_encrypt(const unsigned char *plaintext, int plaintext_len, const unsigned char *key, const unsigned char *iv, unsigned char *ciphertext) {AES_KEY enc_key;if (AES_set_encrypt_key(key, 128, &enc_key) < 0) {fprintf(stderr, "AES_set_encrypt_key failedn");return -1;}AES_cbc_encrypt(plaintext, ciphertext, plaintext_len, &enc_key, iv, AES_ENCRYPT);return 0;}int main() {unsigned char key[] = "0123456789abcdef"; // 128位密钥unsigned char iv[] = "0123456789abcdef"; // 初始向量unsigned char plaintext[] = "Hello, World!";unsigned char ciphertext[128];int plaintext_len = strlen(plaintext);aes_encrypt(plaintext, plaintext_len, key, iv, ciphertext);printf("Ciphertext: %sn", ciphertext);return 0;}该示例采用CBC加密模式,关键参数包括128位密钥和初始化向量。实际应用中需根据算法规范调整参数长度。
执行程序前需确保系统已安装OpenSSL开发库,编译时需添加crypto库支持:
gcc -o aes_encrypt aes_encrypt.c -lcrypto通过上述步骤即可完成AES加密功能的实现,生成的程序可对指定数据进行加密处理。