按照密码加密文件
来源:互联网 发布:access数据库制作软件 编辑:程序博客网 时间:2024/06/04 00:48
头文件
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//字符串按照密码加密char *stringJiami(char *password, char *string);//字符串加密char *stringJiemi(char *password, char *string);//字符串解密void fileJiami(char *path, char *pathjia, char *password);void fileJiami(char *pathjia, char *pathjie, char *password);
源文件
#include"密码加密.h"int getfilesize(char *path){FILE *pf = fopen(path, "r");if (pf == NULL){return -1;}else{fseek(pf, 0, SEEK_END);//把指针移动到文件末尾int length = ftell(pf);//指针到开头的长度return length;}}char *stringJiami(char *password, char *string){int passLength = strlen(password);//密码长度int stringLength = strlen(string);//字符串长度if (stringLength%passLength == 0){int ci = stringLength / passLength;//要循环的次数for (int i = 0; i < ci; i++)//循环次{for (int j = 0; j < passLength; j++)//循环密码{string[passLength*i + j] ^= password[j];//异或加密}}}else{int ci = stringLength / passLength;//要循环的次数for (int i = 0; i < ci; i++){for (int j = 0; j < passLength; j++){string[passLength*i + j] ^= password[j];}}int lastLength = stringLength%passLength;//剩下的长度for (int i = 0; i < lastLength; i++){string[passLength*ci + i] ^= password[i];//剩下的字节进行加密}}return string;}char *stringJiemi(char *password, char *jiastring){int passLength = strlen(password);int stringLength = strlen(jiastring);if (stringLength%passLength == 0){int ci = stringLength / passLength;for (int i = 0; i < ci; i++){for (int j = 0; j < passLength; j++){jiastring[passLength*i + j] ^= password[j];}}}else{int ci = stringLength / passLength;for (int i = 0; i < ci; i++){for (int j = 0; j < passLength; j++){jiastring[passLength*i + j] ^= password[j];}}int lastLength = stringLength%passLength;for (int i = 0; i < lastLength; i++){jiastring[passLength*ci + i] ^= password[i];}}return jiastring;}void fileJiami(char *path, char *pathjia, char *password){FILE *pfr, *pfw;pfr = fopen(path, "r");pfw = fopen(pathjia, "w");if(pfr==NULL||pfw==NULL){fclose(pfr);fclose(pfw);return;}else{int stringLength = getfilesize(path);char *newstr = (char*)malloc(sizeof(char)*(stringLength + 1));for (int i = 0; i < stringLength; i++){char ch = fgetc(pfr);newstr[i] = ch;}newstr[stringLength] = '\0';printf("%s", newstr);stringJiami(password, newstr);for (int i = 0; i < stringLength; i++){fputc(newstr[i], pfw);}fclose(pfr);fclose(pfw);}}void fileJjiemi(char *pathjia, char *pathjie, char *password){FILE *pfr, *pfw;pfr = fopen(pathjia, "rb");pfw = fopen(pathjie, "wb");if (pfr == NULL || pfw == NULL){fclose(pfr);fclose(pfw);return;}else{//不对/*int stringlength = strlen(pathjia);char *newstr = (char*)malloc(sizeof(char)*(stringlength + 1));for (int i = 0; i < stringlength; i++){char ch = fgetc(pfr);newstr[i] = ch;}newstr[stringlength] = '\0';printf("\n\n%s", newstr);stringJiemi(password, newstr);for (int i = 0; i < stringlength; i++){fputc(newstr[i], pfw);}fclose(pfr);fclose(pfw);*/while (!feof(pfr)){char string[256] = { 0 };fgets(string, 256, pfr);stringJiemi(password, string);//加密啊fputs(string, pfw);//写入jie密文件}fclose(pfr);fclose(pfw);//关闭文件}}
阅读全文
0 0
- 按照密码加密文件
- 【C/C++学院】0801-重定向以及文件扫描/二进制加密解密/简单加密/按照密码加密/动态库与静态库
- 流密码文件加密
- 汇编语言编程:按照凯撒密码的规则加密
- DES 文件加密, RSA 给密码加密
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- 密码、文件MD5加密,密码sha256、sha384、sha512Hex等加密
- shadow文件中密码的加密方式
- 流密码密钥库文件加密探索
- shadow文件中密码的加密方式
- 流密码加密文件的一个问题
- shadow文件中密码的加密方式
- rar密码加密文件破解方法
- 隐私文件加密保护工具 访问 文件夹 输入 密码 加密
- 密码加密
- 密码加密
- 捉虫与寻龙:从0打造wordpress插件wp2oc fileshare (1) – 将wp存储后端做进owncloud
- 本地环境:mycat+mybatis+springboot实现demo
- 你可能不知道的提高react编写效率5倍的vscode插件- React/Redux/react-router Snippets
- hdu 1559
- 15 个最好的 Bootstrap 设计工具推荐
- 按照密码加密文件
- python爬虫
- Hibernate注解使用入门
- 分布式开发--分布式定时任务
- mineportal2:基于mailinbox,一个基本功能完备的整合个人件
- ShareSDK 一键分享的集成
- ThinkPad 在win10系统上设置Windows Hello
- Vue $ref用法
- SecureCRT配置跳板机