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

代码如下:

//#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;
}

效果:

C语言实现任何文件的加密解密相关推荐

  1. c语言编程文件的加密解密,C语言实现任何文件的加密解密功能

    本文实例为大家分享了C语言实现文件加密解密功能的具体代码,供大家参考,具体内容如下 使用命令提示符,实现任何文件的加密和解密功能. 代码如下: //#define _CRT_SECURE_NO_WAR ...

  2. 加 解密的c语言程序,c语言程序设计文个件加密解密.doc

    c语言程序设计文个件加密解密 程序报告设计 题目:加密解密处理 程序设计报告的电子文档(程序设计.doc ) 老师对作业要求. 1:对学生课程设计两周的纪律及提交内容的要求: (1)规定上机的时间内不 ...

  3. java 文件 加解密_Java实现文件的加密解密功能示例

    Java实现文件的加密解密功能示例 发布时间:2020-10-05 22:05:15 来源:脚本之家 阅读:86 作者:FC WORLD!!! 本文实例讲述了Java实现文件的加密解密功能分享给大家供 ...

  4. java实现文件加密与解密_Java实现文件的加密解密功能示例

    本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...

  5. java 文件进行加密解密_java使用异或对文件进行加密解密

    本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 /* ...

  6. java开发文件夹加密解密程序_Java应用开发:文件加密解密

    本人记性不是很好,总是忘记些重要信息,特别是密码,很多时间登录都要试好几个密码才成功.所以想到了把 这些容易忘记的重要信息记录到一个文本文件上,再对其加密(不易忘记的密码).对文件的加密,自己写了个小 ...

  7. C#实现AES算法对文件的加密解密

    本文实现了C#内置的AES算法对文件进行加密解密.有关AES的介绍不再赘述,主要讲如何实现文件的加密解密.项目工程源代码下载 网上的实现基本上都是要16,24或32位密码,密钥向量也要16位,都固定死 ...

  8. RC4算法对文件进行加密解密

    RC4算法对文件进行加密解密 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变.它加解密使用相同的密钥,因此也属于对称加密算法.RC4是有线等效加密(WEP ...

  9. java对sha1的解密_Java实现文件的加密解密功能示例

    本文实例讲述了java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.file; import java.io ...

  10. AES128-ECB对文件进行加密解密验证

    AES128-ECB对文件进行加密解密验证 一.源码函数讲解 源码下载地址 #ifndef __AES_H__ #define __AES_H__#include <stdint.h>/* ...

最新文章

  1. lvs的十种调度算法概念
  2. 47.命名空间namespace
  3. windows安装MongoDB进度条卡住,window安装mongo系统错误 2,系统错误5的解决办法(转载)...
  4. vmlite linux版本,vmlite 安装 xp mode及xp、win7、linux的虚拟磁盘到d盘的方法
  5. java 内置函数_java8 四大内置核心函数式接口
  6. cocos2dx基础篇(2)——Win32移植到Android
  7. linux 常用头文件,(常用头文件详解.doc
  8. 【windows】windows允许 ICMP协议(允许ping)
  9. javascript设计模式——Publish/Subscribe
  10. Angular5--viewChild/viewChildren、contentChild/contentChildren使用规则小结
  11. 百度地图定位SDK 之构想
  12. [20141121]无法通过powershell读取sql server性能计数器问题
  13. 网络电视接口 php,【小白教程】智能电视背后这些接口怎么用?
  14. 小程序input获得焦点触发_小程序文本框焦点 小程序input自动获取焦点
  15. SE11字段过多时怎么快速建表
  16. 华师大的计算机专业属于提前批吗,关于华师大、上师大提前批的问题
  17. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(一)
  18. python爬虫篇,零基础学爬虫之精华版
  19. IMX6q ft5x0x_ts触摸芯片分析
  20. 【java】查重类的实现

热门文章

  1. 洛谷P5369 [PKUSC2018]最大前缀和 [DP]
  2. 悉尼大学计算机工程专业世界排名,悉尼大学世界排名及专业排名汇总(QS世界大学排名版)...
  3. 作为一名程序员如何在国内使用谷歌搜索技术(Google)?
  4. pid双闭环matlab仿真,SPWM波控制单相逆变器双闭环PID调节器的Simulink建模与仿真
  5. android studio adb 连接mumu 模拟器
  6. MPEG-2 数字视频技术参考指南 (7)—— ATSC数字电视标准
  7. 分布式会议系统中的服务器,多功能会议系统分配服务器质量过硬
  8. 关于微信网页版WeChat不能正常登录的最佳解决方案
  9. 图片文字识别—OCR技术
  10. 舞蹈工作室舞蹈课程预约小程序开发制作