代码见下面,编译之后就可以用;建议放在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 加密解密文件小程序的更多相关文章

  1. php AES cbc模式 pkcs7 128位加密解密(微信小程序)

    PHP AES CBC模式PKCS7 128位加密 加密: $key = '1234567812345678'; $iv = '1234567890123456'; $message = '12345 ...

  2. 使用 gzexe 快速加密解密文件内容

    使用 gzexe 快速加密解密文件内容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用sshpass工具编写远程管理脚本 1>.安装依赖包 [root@node101 ...

  3. C# 加密解密文件

    using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptograph ...

  4. base64加密解密文件

    1 //字符串加密 -(void)demo1 { //普通的 8 bit二进制数据 NSString *str = @"hello world!"; //将字符串转换成二进制数据 ...

  5. DES 加密解密 文件工具类

    public class DESEncrypt { /** 加密工具 */ private Cipher encryptCipher = null; /** 解密工具 */ private Ciphe ...

  6. linux 下启动jar小程序

    下面是我的三个可运行jar程序 1.启动 采集话单文件应用程序 nohup java -jar gather.jar > logs/gather/console.out & 2.启动   ...

  7. GOLANG 加密,解密,GUID 小方法

    golang的 MD5加密.BASE64解密  guid 的代码: /** * 用于加密,解密,(包含MD5加密和base64加密/解密)以及GUID的生成 * 时间: * zhifieya */ p ...

  8. (转载)linux中设备文件配置程序udev详解

    如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略.在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev ...

  9. C#调用GPG命令进行加密解密文件操作

    public void GPG() { string password = "1234567890"; System.Diagnostics.ProcessStartInfo ps ...

随机推荐

  1. hdu-5015-233 Matrix-矩阵

    非常显然矩阵的第一列为: 0 a[1] a[2] a[3] a[4] 我们转化一下,转化为 23 a[1] a[2] a[3] a[4] 3 那么由第一列转移到第二列则为 23*10+3 a[1]+2 ...

  2. java 内存与内存溢出

    学习自:http://www.codeceo.com/article/jvm-memory-overflow.html 讲的很清楚

  3. html中文件类型的accept属性有哪些

    *.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video *.ac3 audio/ac3 AC3 Audio *.asf allpication/vnd.ms-as ...

  4. 移除WordPress文章图片的宽度和高度属性

    通过WordPress自身的媒体上传功能插入到文章的图片,都会默认添加了高度和宽度属性: <img title="使用 Chrome Workspace 进行网站调试 | 倡萌的自留地 ...

  5. 如何将linux服务器作为文件服务器

    在开发过程中想要使用linux服务器作为文件服务器,可以通过 IP+文件名来获取文件信息,比如http://localhost/banner/a.jpg.设置过程如下 1.安装apache2 sudo ...

  6. 【Atheros】无线网卡驱动性能测试工具pktgen的使用

    前言:从12年开始做无线驱动相关的工作,到13年大概做了一年半,现在歇了快一年了,以免白学那么久,最近重新整理了一下当时的资料,写一点文章,这方面的帖子比较少,当时碰到过很多问题难以解决,我是用的li ...

  7. freopen - C/C++文件输入输出利器

    freopen以前经常使用,比较方便,可以当作模板,在中间替换为自己的代码即可使用. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h&g ...

  8. Linuxt图形界面安装

    通常安装图形界面需要安装Xorg.桌面环境(Gnome.KDE.xfce等).字体等.你的Linux是什么版本?具体要看你的linux来决定用什么命令来安装. #yum grouplist 自己看看列 ...

  9. c++编码习惯

    1 大驼峰命名法 类名和函数名由单词构成,每个单词的首字母大写. 2 函数命名 大驼峰命名法. 3 类命名 大驼峰命名,但是为了和函数名区分开,在前面加上一个大写的C.

  10. 【题解】DZY Loves Chinese

    [题解]DZY Loves Chinese II 不吐槽这题面了... 考虑如何维护图的连通性,如果把图的变成一颗的\(dfs\)生成树,那么如果把一个节点的父边和他接下来所有的返祖边删除,那么我们就 ...