c语言加密程序怎么写
时间: 2023-11-27 13:02:50 浏览: 75
c语言加密程序
C语言加密程序可以采用对称加密算法,比如常用的AES加密算法。
以下是一个简单的AES加密程序的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/aes.h>
// 加密函数
void aes_encrypt(unsigned char *in, unsigned char *out, unsigned char *key, int len) {
AES_KEY aes_key;
AES_set_encrypt_key(key, 128, &aes_key);
AES_encrypt(in, out, &aes_key);
}
// 解密函数
void aes_decrypt(unsigned char *in, unsigned char *out, unsigned char *key, int len) {
AES_KEY aes_key;
AES_set_decrypt_key(key, 128, &aes_key);
AES_decrypt(in, out, &aes_key);
}
int main() {
unsigned char in[] = "Hello, world!"; // 要加密的字符串
unsigned char out[17] = {0}; // 加密后的字符串
unsigned char key[] = "1234567890123456"; // 密钥,必须为16个字符
aes_encrypt(in, out, key, strlen(in)); // 加密
printf("加密后的字符串为:");
for (int i = 0; i < 16; i++) {
printf("%02x", out[i]); // 输出加密后的字符串
}
printf("\n");
unsigned char decrypted[17] = {0}; // 解密后的字符串
aes_decrypt(out, decrypted, key, 16); // 解密
printf("解密后的字符串为:%s\n", decrypted); // 输出解密后的字符串
return 0;
}
```
提示:此示例只适用于加密长度为16个字节的字符串。如果要加密更长的字符串,需要将字符串分割成16个字节的块进行加密。
阅读全文