| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:文件加密
只看楼主 加入收藏
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
结帖率:100%
收藏
 问题点数:0 回复次数:4 
文件加密

刚学c时突发奇想就写了这个,高手莫笑我.
/*
Name: easysecret V1.0
Copyright:
Author: 随心
Date: 20-09-07 23:33
Description:
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

/*******写文件函数*************/
void write(void)
{
FILE *fp;
int n;
char name[30],_name[30],ch,flag;
printf("说明\n");
printf("此程序将您的重要资料写成一个二进制文件,\n以便起到保护作用.");
printf("是否要继续(Y/N):");
flag=getchar();
if(flag=='Y'||flag=='y'||flag=='\n')
{
printf("输入你的保密文件名:");
w: gets(name);
sprintf(_name,"c:\\secret\\%s.sec",name);
if((fp=fopen(_name,"wb"))!=NULL) //注意:这里一定不能少了fp=
{
printf("输入你要进行加密的资料:\n");
ch=getchar();
while(ch!=EOF)
{
fputc(ch,fp);
ch=getchar();
}
printf("是否保存(Y/N):");
flag=getchar();
if(flag=='y'||flag=='Y'||flag=='\n')
n=fclose(fp);
else
exit(0);
if(n==0)
printf("保存成功!");
}
else
{
system("md c:secret");
printf("确认输入:");
goto w;
printf("建立文件失败,任意键退出...");
getch();
exit(0);
}
}
else
{
printf("谢谢使用本程序!\n");
getch();
exit(0);
}
}

/********读文件函数*************/
void read(void)
{
FILE *fp;
char reader,path[60],_path[60],flag,name[30];
printf("是否从默认文件夹中读取(Y/N):");
flag=getchar();
getchar();
if(flag=='\n'||flag=='y'||flag=='Y')
{
printf("输入文件名:");
gets(name);
sprintf(_path,"c:\\secret\\%s.sec",name);
reader: system("cls");
printf("以下是加密文件的内容:\n");
if((fp=fopen(_path,"rb"))!=NULL)
{
rewind(fp);
reader=fgetc(fp);
while(reader!=EOF)
{
putchar(reader);
reader=fgetc(fp);
}
putchar('\n');
printf("文件读取结束!\n");
}
else
{
printf("文件不存在!\n");
getch();
exit(0);
}
}
if(flag=='n'||flag=='N')
{
printf("输入文件路径\n");
printf("例如:c:\\\\secret\\\\a \n");
gets(path);
flag='y';
sprintf(_path,"%s.sec",path);
goto reader;
}
fclose(fp);
}

/******菜单函数*****/
char menu(void)
{
char choice;
printf("================================\n");
printf("1 将一些重要资料写成加密文件\n");
printf("2 读一个加密文件\n");
printf("0 退出\n");
printf("=================================\n");
printf("choice:");
choice=getchar();
getchar();
return choice;
}

/******主函数********/
int main(void)
{
char _choice;
_choice=menu();
while(1)
{
switch(_choice)
{
case '0':exit(0);
case '1':
{
write();
getch();
system("cls");
_choice=menu();
}
break;
case '2':
{
read();
getch();
system("cls");
_choice=menu();
}
break;
default :printf("输入错误,请重新输入:");
}
}
return 0;
}







搜索更多相关主题的帖子: 二进制 文件 printf include 
2007-10-26 11:51
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
LZ刚学C?
那学成之后成什么样子
拭目以待

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-10-26 13:26
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
我说的是刚学C

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-10-26 13:38
yeqishi
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-19
收藏
得分:0 

请问你这是用什么编译器的哦?


2007-10-26 16:52
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 

DEV-CPP 4.9.2

好象(网吧上网的)是这个版本吧,反正用的是DEV-CPP

[此贴子已经被作者于2007-10-26 16:58:53编辑过]


天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2007-10-26 16:58
快速回复:文件加密
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018329 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved