基于c语言的文件加密与解密程序的实现,C语言实现任何文件的加密解密

使用命令提示符,实现任何文件的加密和解密功能。

代码如下:

//#define _CRT_SECURE_NO_WARNINGS

#include

#include

#include

#include

#include

#pragma warning(disable:4996)

//加密

void Encryption(char *p, size_t n)

{

for (int i = 0; i < n;++i)

{

*p += 7;

}

}

//解密

void Decrypt(char *p, size_t n)

{

for (int i = 0; i < n;++i)

{

*p -= 7;

}

}

char *EnOrDe = {0};

int main(int argc, char *args[])

{

clock_t c1 = clock();//系统当前时间,毫秒为单位

char *FileNameSrc = (char *)calloc(160, sizeof(char));//待操作文件

char *p2 = (char *)calloc(200, sizeof(char));//操作后文件名

//从命令行获取文件名和要处理的操作

FileNameSrc = args[1]

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DES是一种对称加密算法,可以用C语言实现加密解密。下面是一个简单的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/des.h> void des_encrypt(const char *key, const char *input, char *output) { // 创建key DES_cblock des_key; DES_key_schedule des_key_schedule; memset(des_key, 0, sizeof(des_key)); memcpy(des_key, key, strlen(key) > 8 ? 8 : strlen(key)); DES_set_key_checked(&des_key, &des_key_schedule); // 加密 DES_cblock input_block, output_block; memset(input_block, 0, sizeof(input_block)); memset(output_block, 0, sizeof(output_block)); memcpy(input_block, input, strlen(input) > 8 ? 8 : strlen(input)); DES_ecb_encrypt(&input_block, &output_block, &des_key_schedule, DES_ENCRYPT); // 输出结果 for (int i = 0; i < 8; i++) { sprintf(output + i * 2, "%02x", output_block[i]); } } void des_decrypt(const char *key, const char *input, char *output) { // 创建key DES_cblock des_key; DES_key_schedule des_key_schedule; memset(des_key, 0, sizeof(des_key)); memcpy(des_key, key, strlen(key) > 8 ? 8 : strlen(key)); DES_set_key_checked(&des_key, &des_key_schedule); // 解密 DES_cblock input_block, output_block; memset(input_block, 0, sizeof(input_block)); memset(output_block, 0, sizeof(output_block)); for (int i = 0; i < strlen(input) / 2; i++) { sscanf(input + i * 2, "%02x", &input_block[i]); } DES_ecb_encrypt(&input_block, &output_block, &des_key_schedule, DES_DECRYPT); // 输出结果 memcpy(output, output_block, 8); } int main() { char key[] = "12345678"; char input[] = "hello"; char output[17]; des_encrypt(key, input, output); printf("加密结果: %s\n", output); des_decrypt(key, output, input); printf("解密结果: %s\n", input); return 0; } ``` 使用方法: 1. 将上面的代码保存到一个名为`des.c`的文件中。 2. 在终端中进入到代码所在的目录,并使用以下命令编译代码: ``` gcc des.c -o des -lcrypto ``` 3. 运行程序,输入以下命令: ``` ./des ``` 4. 程序将输出加密解密结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值