c语言实现简单的文本文件加密 ---初试

先用python 做一个文本文件  (一个学号列表)

python 代码:

[[email protected] kuing]# cat input.py

#!/usr/bin/env python

f = open(‘design.txt‘,‘w+‘)

for i in range(10001,200001):

f.write(‘%d\n‘ %i)

f.close()

没错  就是这么简单...

然后就是这些东西..

...

199998

199999

200000

接下来 写c语言代码:

[[email protected] kuing]# cat input.c

#include<stdio.h>

#include<stdlib.h>

int main(){

FILE *fp;

FILE *temp;

char filename[30];

char ch;

char strbuf[256];

printf("please input your filename:");

gets(filename);

filename[29] = ‘\n‘;

if ((fp = fopen(filename,"rb")) == NULL){

printf("error!\n");

return -1;

}

if ((temp = fopen("temp.txt","wb+")) == NULL){

printf("create file error!\n");

}

while(!feof(fp)){

ch = fgetc(fp);

if((int)ch != 0 && (int)ch != 0){

ch = ~ch;

ch = ch << 5;

fputc(ch,temp);

}

}

fclose(temp);

fclose(fp);

sprintf(strbuf,"rm %s",filename);

system(strbuf);

sprintf(strbuf,"mv temp.txt %s",filename);

system(strbuf);

return 0;

}

然后用在Linux系统下 用gcc编译 的时候  出现gets警告轻忽略  Linux下是不建议这种写法的

但是 如果换成 fgets() 又要解决符号问题  比较麻烦   所以请忽略..

然后 运行

请输入要加密的文件

[[email protected] kuing]# ./input

please input your filename:design.txt

...

加密后类似于这样..

φφφφφφφǐφǎφφφφǐφǐφǐφǐφǐφǎφǎφǎφωǎφχǎφǎφǎφǎφǎφǎφφφφφφφφφφφφφˋφˉφˇφφφφφφφφφφφφφφφφǐφǎφφφ ...

其实这就是这把字符按位取反  如果程序反过来运行一下  就会解密其中的内容..

..

时间: 2024-07-30 10:07:26

c语言实现简单的文本文件加密 ---初试的相关文章

c语言课程设计之文本文件加密技术

#include<stdio.h> #include<stdlib.h>//使用了exit函数 #include<string.h> #define M 30 void menu(void);//菜单函数 void create(void);//新建文件及输入文本函数 void encrypt(void);//加密函数 void decrypt(void);//解密函数 int judge(void);//判断函数 int proceed(code);//判断密码是否合

C语言单片和C#语言服务器端DES及3DES加密的实现

原文:C语言单片和C#语言服务器端DES及3DES加密的实现 公司最近在做单片机和C#语言的通信.用的是Socket通信.传输的数据是明文,后来 在会上讨论准备用DES加密(对称加密)来做. 双方约定 相应的“密钥”. 以前做的加密一般都是用C#加密和C#解密.一直以为是个简单的问题,现在和用C写的单片机通信的时候却出了问题. 问题是什么呢? 我找了几个在线加密 解密的网站,还下了几个加密解密的工具.结果相同的数据,用相同的密钥却得到不同的结果. 而且现在网上C语言实现的DES资料基本上是不靠谱

PHP语言基础简单整理

1.开始结束标记<? ... ?> 2.定义变量:$变量名 例: $str="锦清笋";不需要指明数据类型 3.输出语句:(1)echo "hello world!";---echo命令(2)print();输出语句,是函数,有返回值.输出成功返回1,失败返回0.(3) printf();格式化输出字符串.例:printf("%d,%f",12,12.3); (4)sprintf();格式化拼接字符串,不是输出语句,只能将字符串拼接.

Android技术10:Java与C语言之间简单数据的传递

由于C语言和Java语言之间很多类型不一致性,因此使用native时,需要数据类型转换.下面演示分别传递整型,字符串,整型数组,Java静态方法传递数据. 1.创建native方法 我们单独创建一个NativeClass类来存放native方法 1 package com.forsta.ndk; 2 3 public class NativeClass { 4 public native int add(int x,int y); 5 public native String showStrin

Linux 用C语言实现简单的shell(2)

不知不觉两周没有发文了,因为“一万美金的福特奖学金答辩”,ACM比赛,网络论文阅读和网络大作业一大堆事把时间冲散了,所以先写一篇博文补上之前一坑. 之前发了一篇关于linux 用C语言实现简单shell的博文,当时因为刚刚接触linux,只是处理了: 1)外部命令 2)pwd,cd,exit内置命令 3)输入输出重定向 并且代码相比较而言是一步一步添加的,代码相对来讲比较丑QAQ,所以在学完管道之后,相信不得不重新写代码才能实现了. 相比较之前的版本我对代码进行了相关的修改: 1)对于shell

二、Java语言的简单认识及Hello World示例

1. Java语言的简单认识 (1) Java有三个版本: a. JAVA SE (以前称J2SE):Standard Environment 标准版本: b. JAVA EE (以前称J2EE):Enterprise Environment 企业版: c. JAVA ME (以前称J2ME):Eicro Environment 微型版; (2) Java的安装目录 在前一讲中,提到安装目录中有两个文件夹,分别是jdk1.7.0_45和jre7.在"jdk1.7.0_45"文件夹的bi

C#,ASP.NET简单的MD5加密,解密

简单的MD5加密 首先要有一个加解密的规则  就是key 代码如下 // 创建Key public string GenerateKey() { DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create(); return ASCIIEncoding.ASCII.GetString(desCrypto.Key); } 然后就是加密 传入的参数分别为你要加密的字符串,

c语言:简单飞机射击小游戏

c语言:简单飞机射击小游戏 使用c语言编写一个打飞机小游戏,使用键盘按键来进行游戏,操作方法是"a""d""w"或者"←""↑""→"来控制攻击.左.右,击中敌机可获得积分,被敌机撞中死亡一次,每次游戏有3次机会,机会用光则游戏结束,之后可选择是否重新开始游戏. 改进:增加了颜色函数,使得游戏看起来更加的舒适:增加了终止函数,使游戏在死亡三次后自动结束游戏,并且可以选择是否重新开始游戏:

Linux下C语言使用openssl库进行加密

在这里插一小节加密的吧,使用openssl库进行加密. 使用MD5加密 我们以一个字符串为例,新建一个文件filename.txt,在文件内写入hello ,然后在Linux下可以使用命令md5sum filename.txt计算md5值 ==> b1946ac92492d2347c6235b4d2611184  .虽然写入的是hello这5个字符,但是我们使用命令xxd filename.txt后可以看出文件结尾处会有个0x0a这个回车符.所以在下面的代码中才会有\n. 1 //打开/usr/