C语言info的加密与解密

1158
2024/8/23 21:32:34
栏目: 网络安全
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C语言中,可以使用各种加密算法来加密和解密数据,常见的包括对称加密算法(如AES、DES、RC4)和非对称加密算法(如RSA)等。

下面是一个简单的例子,使用AES算法对字符串进行加密和解密:

#include <stdio.h>
#include <string.h>
#include <openssl/aes.h>

// 加密函数
void encrypt(char *input, char *key, char *output) {
    AES_KEY aes_key;
    AES_set_encrypt_key(key, 128, &aes_key);
    AES_encrypt(input, output, &aes_key);
}

// 解密函数
void decrypt(char *input, char *key, char *output) {
    AES_KEY aes_key;
    AES_set_decrypt_key(key, 128, &aes_key);
    AES_decrypt(input, output, &aes_key);
}

int main() {
    char *key = "1234567890abcdef";
    char *input = "Hello, World!";
    char encrypted[AES_BLOCK_SIZE];
    char decrypted[AES_BLOCK_SIZE];

    encrypt(input, key, encrypted);
    printf("Encrypted: %s\n", encrypted);

    decrypt(encrypted, key, decrypted);
    printf("Decrypted: %s\n", decrypted);

    return 0;
}

需要注意的是,此例子使用的是OpenSSL库中的AES算法,需要安装OpenSSL库并链接相应的库文件才能编译成功。另外,实际应用中需要更复杂的加密算法和密钥管理策略来确保数据的安全性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言结构体数组如何排序