linux 加密解密文件小程序
2017-09-07 13:40
225 查看
代码见下面,编译之后就可以用;建议放在bash下,或者添加环境变量。
使用方法:encrypt 。两次输入密码。加密密码与解密密码不一致解码后就不是原文件了!
#include <stdio.h> #include <stdlib.h> #include <string.h> int decrypt(FILE *in,FILE *out); int encrypt(FILE *in,FILE *out); int passlen; char pass[105],passa[105]; int main(int argc,char **argv) { if(argc != 2) { printf("\n请输入文件名进行加密或者解密!\n"); printf(" encrypt <inputfile>\n\n"); exit(0); } while(1) { printf("Enter password:"); system("stty -icanon"); system("stty -echo"); scanf("%s",pass); system("stty icanon"); system("stty echo"); printf("\nEnter password again:"); system("stty -icanon"); system("stty -echo"); scanf("%s",passa); system("stty icanon"); system("stty echo"); if(strcmp(pass,passa)==0) break; printf("\nPassword is inconsistent\n"); } printf("\n"); FILE *in = fopen(argv[1],"rb"); FILE *out = fopen("encrypt-tmp","w"); passlen=strlen(pass); char code=0xAA; for(int i=0;i<passlen;i++) pass[i]=pass[i]^code; if(in == NULL || out == NULL) { fprintf(stderr,"%s\n","open file error!"); exit(1); } encrypt(in,out); fclose(in); fclose(out); remove(argv[1]); rename("encrypt-tmp",argv[1]); return 0; } int encrypt(FILE *in,FILE *out) { if(in == NULL || out == NULL) { fprintf(stderr,"%s\n","file error!\n"); return -1; } char hex; int i=0; while(fread(&hex,1,1,in)) { char s=pass[i]; hex = hex^s; fwrite(&hex,1,1,out); i++; i%=passlen; } return 0; }
相关文章推荐
- Linux下利用openssl对文件进行加密和解密
- Linux用vim/vi给文件加密和解密
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- linux下用openssl的RSA算法对文件加密解密
- 一个简单的C++加密,解密文件程序
- Linux下利用openssl对文件进行加密和解密
- Linux之文件加密解密
- linux环境下给文件加密/解密的方法
- linux 文件 加密/解密
- Linux用vi给文件加密和解密
- 文件加密解密小程序
- 文件加密解密程序
- 实现对文件进行加密,解密程序代码
- Linux用vi给文件加密和解密
- c#实现文件加密、解密及文件拖拽至程序图标直接打开
- linux下文件加密小程序
- linux下使用openssl对文件RSA加密解密
- Linux安全机制之文件加密解密
- Linux下grub配置文件以及加密和解密 推荐