文件加解密(二)——使用密码
来源:互联网 发布:火箭引擎 知乎 编辑:程序博客网 时间:2024/05/24 06:23
#define _CRT_SECURE_NO_WARNINGS#define SRC_PATH "C:\\Users\\michael\\Desktop\\yzh.txt"#define CODE_PATH "C:\\Users\\michael\\Desktop\\yzh_code.txt"#define DECODE_PATH "C:\\Users\\michael\\Desktop\\yzh_decode.txt"#include <stdio.h>#include <stdlib.h>#include <string.h>int getFileSize_C(char * file){ int size = -1; FILE * path; path = fopen(file, "r"); if (NULL == path) { printf("文件打开失败!\n"); return size; //文件大小不可能为负数 } else { //设置流文件指针的位置,以SEEK_END为起点,偏移量是0,亦即SEEK_END fseek(path, 0, SEEK_END); //函数结果:当前文件流指针位置相对于文件起始位置的字节偏移量 size = ftell(path); fclose(path); path = NULL; } return size;}void code_decode_file_with_psw(char* path, char* newpath,char* psw){ FILE* pRead = fopen(path, "r"); FILE* pWrite = fopen(newpath, "w"); if (pRead == NULL || pWrite == NULL) { return; } else { int ch = 0; int fileSize = getFileSize_C(path); int pswLength = strlen(psw); for (int i = 0; i < fileSize / pswLength; i++) { for (int j = 0; j < pswLength; j++) { ch = fgetc(pRead); fputc(ch^psw[j], pWrite); } } for (int k = 0; k <fileSize % pswLength; k++) { ch = fgetc(pRead); fputc(ch^psw[k], pWrite); } } fclose(pRead); fclose(pWrite); pRead = NULL; pWrite = NULL;}void main(){ code_decode_file_with_psw(SRC_PATH, CODE_PATH,"yzh"); code_decode_file_with_psw(CODE_PATH, DECODE_PATH,"yzh"); system("pause");}
说明:文本文件使用密码加密时,不能使用r,w方式打开文件。应该使用rb,wb。
0 0
- 文件加解密(二)——使用密码
- 维吉尼亚密码加解密(no 文件加解密)
- 面向Windows的文件透明加解密解决方案(3)——透明加解密驱动程序二
- 文件加解密—解密版
- spring 属性文件加密码及解密
- 密码学(二)—RSA后端加解密java实现
- 使用Druid加解密数据库密码
- Java加解密——初步认识密码体制
- 面向Windows的文件透明加解密解决方案(3)——透明加解密驱动程序一
- Android数据库加解密逆向分析(三)——微信数据库密码破解
- weblogic密码加解密
- 培根密码加解密
- Vim 如何加密码文件与解密文件
- 密码和Java中的加解密之对称加密(二)
- 图解密码技术笔记(二)公钥密码——用公钥加密,用私钥解密
- 【Delphi】RDP文件中的密码Hash加解密单元
- 使用AES对文件的加解密
- 如何使用 GPG 加解密文件
- NGUI界面Drawcall优化
- 8. Document getElementById() 方法
- Sizeof与Strlen的区别与联系
- 程序员技术练级攻略
- ubuntu修改主机名
- 文件加解密(二)——使用密码
- 读取raw文件夹的数据
- [LeetCode] Shortest Palindrome I
- 南邮 OJ 1029 短语搜索
- HDU5335 Walk Out(dfs+递推)
- 阿里云Ubuntu系统+Apache2+PHP搭建gitblog
- java多线程(二) 多线程的同步
- Android实现拍照或从相册中选择照片并截取
- poj3268