在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庫并鏈接相應的庫文件才能編譯成功。另外,實際應用中需要更復雜的加密算法和密鑰管理策略來確保數據的安全性。