C语言实现任何文件的加密解密
来源:互联网 发布:大势至usb端口 编辑:程序博客网 时间:2024/04/19 18:04
使用命令提示符,实现任何文件的加密和解密功能。
代码如下:
//#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include<time.h>#include<sys/stat.h>#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];//文件名,包含路径char *p1 = args[1];EnOrDe = args[2];//en表示加密,de表示解密/*FileNameSrc = "E:\\iPhone6-new.txt" ;char *p1 = FileNameSrc;EnOrDe = "de";*//**********处理生成新的文件名***********///char *p2 = { 0 };/*FileNameSrc = p1;*///printf("%s\n", FileNameSrc);//printf("%s\n", EnOrDe);int index = 0;while (*p1){if (*p1!='.'){*p2 = *p1;p2++;p1++;index++;}else if (*p1 == '.'){*p2 = '_';p2++;*p2 = 'H';p2++;*p2 = '.';p2++;p1++;index+=2;}}printf("\n");printf("信息摘要:\n");printf("--------------------------------------\n");printf("原文件:%s\n", FileNameSrc);printf("操作:%s (en——加密,de——解密)\n", EnOrDe);printf("预计结果文件:%s\n", p2 - index - 1);printf("--------------------------------------\n\n");printf("请稍后,玩命处理中......\n");char *FileNameDst = p2 - index - 1;FILE *pr = fopen(FileNameSrc, "rb");FILE *pw = fopen(FileNameDst, "wb");struct stat st = { 0 };size_t fileSize = st.st_size;//以字节为单位//char *buf = NULL;//if (fileSize<1024*1024)//小于1M//{//buf = malloc(sizeof(char) * 1024 * 20);//分配20K//}//else//{ // buf = malloc(sizeof(char)*fileSize / 10);//}char *buf = calloc(1024 * 1024 * 25, sizeof(int));//分配100M/*************定义函数指针***************/void(*pFunc)(char *, size_t);pFunc = NULL;if (strcmp(EnOrDe, "en") == 0){pFunc = Encryption;}else if (strcmp(EnOrDe, "de") == 0){pFunc = Decrypt;}/*************定义函数指针***************/while (!feof(pr)){//memset(buf, 0, sizeof(buf));//calloc自动初始化为0size_t res = fread(buf, sizeof(char), sizeof(buf), pr);pFunc(buf, res);fwrite(buf, sizeof(char), res, pw);}fclose(pr);fclose(pw);printf("\n");printf("--------------------------------------\n");printf("执行成功!\n所在目录:%s\n", FileNameDst);clock_t c2 = clock();//系统当前时间,毫秒为单位printf("耗时:%u毫秒\n", c2-c1);printf("--------------------------------------\n");return 0;}效果:
0 0
- C语言实现任何文件的加密解密
- C语言实现简单文件加密解密
- C语言实现文件加密解密
- c语言实现记事本文件的 DES加密 解密
- C语言之文件的加密与解密
- C语言文件加密解密软件
- C语言实现AES加密解密
- 【C】【CrytoAPI】【加密解密】基于CryptoAPI的文件加解密系统设计与实现
- 汇编语言简易加密解密文件的实现
- 使用C语言,对OpenSSL命令行加密的文件进行解密
- RC6加密解密算法实现(C语言)
- 用C语言实现移位密码加密与解密
- C语言实现RC4对称加密/解密算法--以前写的,整理了一下
- C语言实现AES算法加密/解密算法---以前写的,整理下
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- 文件的加密解密
- C语言写的(XOR)加密解密的程序
- Foundation框架下的结构体
- 单链表的的逆置(带头结点)
- 文件一些常用搜索命令
- poj 3181 Dollar Dayz dp 完全背包
- C#中WebBrowser控件的版本问题
- C语言实现任何文件的加密解密
- 数据挖掘 R VS Python
- C语言实现链表之单向链表(一)头文件
- 对java中静态初始化块的理解
- 大学自学编程推荐阅读书籍和参考学习顺序
- Jenkins + python(requests)做接口自动化测试
- 黑马程序员-----java基础概述之关键字、运算符
- 启动Service并用Intent传递数据
- [游戏技术]求生之路服务器指令