分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow
如果你有秘密资料,不想别人看,那么你可以利用下面的加密解密方法(我们不妨假定文件不超过1G)。
加解密原理:将文件中的0和1按照某种法则进行变化,代码如下:
#include <stdio.h>#include <stdlib.h>#include <string.h>#define KEY 729520 // 加密密码#define FILE_NAME_MAX_SIZE 100 // 文件名长度// 变换法则int genFun(int size, int key, int i){ return size + key + i - size / key;}// 获得文件大小int getFileSize(char str[]){ FILE *fp = fopen(str, "rb"); fseek( fp, 0, SEEK_END ); int size = ftell(fp); fclose(fp); return size;}// 文件加密void encrypt(char toBeEncFileName[], int key){ char newFileName[FILE_NAME_MAX_SIZE] = {'i', 'j', 'k'}; strcat(newFileName, toBeEncFileName); FILE *fp1 = fopen(toBeEncFileName, "rb"); FILE *fp2 = fopen(newFileName, "wb"); int i, s, t, size = getFileSize(toBeEncFileName); for(i = 0; i < size; i++) { s = getc(fp1); t = genFun(size, key, i) ^ s; // 加密 putc(t, fp2); } fclose(fp1); fclose(fp2);}int main(){ printf("这是一个文件加密软件!\n"); printf("请输入您的加密身份认证:"); int key; scanf("%d", &key); if(KEY != key) { printf("身份认证错误!\n"); exit(1); } printf("请输入文件的文件名(包括后缀):"); char fileName[FILE_NAME_MAX_SIZE]; scanf("%s", fileName); encrypt(fileName, KEY); printf("加密完成!\n"); return 0;}
加密界面为:
下面附上解密代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>#define KEY 729520 // 解密密码#define FILE_NAME_MAX_SIZE 100 // 文件名长度// 变换法则int genFun(int size, int key, int i){ return size + key + i - size / key;}// 获得文件大小int getFileSize(char str[]){ FILE *fp = fopen(str, "rb"); fseek( fp, 0, SEEK_END ); int size = ftell(fp); fclose(fp); return size;}// 文件解密void decrypt(char toBeDecFileName[], int key){ char newFileName[FILE_NAME_MAX_SIZE] = {'i', 'j', 'k'}; strcat(newFileName, toBeDecFileName); FILE *fp1 = fopen(toBeDecFileName, "rb"); FILE *fp2 = fopen(newFileName, "wb"); int i, s, t, size = getFileSize(toBeDecFileName); for(i = 0; i < size; i++) { s = getc(fp1); t = genFun(size, key, i) ^ s; // 解密 putc(t, fp2); } fclose(fp1); fclose(fp2);}int main(){ printf("这是一个文件解密软件!\n"); printf("请输入密码:"); int key; scanf("%d", &key); if(KEY != key) { printf("密码错误!\n"); exit(1); } printf("请输入文件的文件名(包括后缀):"); char fileName[FILE_NAME_MAX_SIZE]; scanf("%s", fileName); decrypt(fileName, key); printf("解密完成!\n"); return 0;}
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow