c语言 文件加密头文件,[C语言]文件加密

标题:文件加密一例

给文件加密的技术很多,其中又分为不同等级,以适合不同场合的需要。这里给出最简单的文件加密技术,即采用文件逐字节与密码异或方式对文件进行加密,当解密时,只需再运行一遍加密程序即可。

下面是一个实例程序,能对任意一个文件进行加密,密码要求用户输入,限8位以内(当然你可以再更改)。程序有很好的容错设计,这是我们应该学习的。

/* Turbo 2.0 pass. give file a password! */

#include

#include

#include

#include

/*对文件进行加密的具体函数*/

void dofile( char *in_fname, char *pwd, char *out_fname );

/*定义main()函数的命令行参数*/

void main( int argc, char *argv[] )

{

/*用户输入的要加密的文件名*/

char in_fname[ 30 ];

char out_fname[30];

/*用来保存密码*/

char pwd[8];

/*容错处理*/

if ( argc != 4 ) {

printf( “\nIn-fname:\n” );

/*得到要加密的文件名*/

gets( in_fname );

printf(“Password:\n”);

/*得到密码*/

gets(pwd);

printf(“Out-file:\n”);

/*得到加密后你要的文件名*/

gets(out_fname);

dofile( in_fname, pwd, out_fname );

} else { /*如果命令行参数正确,便直接运行程序*/

strcpy( in_fname, argv[ 1 ] );

strcpy( pwd, argv[ 2 ] );

strcpy( out_fname, argv[3] );

dofile( in_fname, pwd, out_fname );

}

}

/*加密子函数开始*/

void dofile( char *in_fname, char *pwd, char *out_file )

{

FILE *fp1,*fp2;

register char ch;

int j  = 0;

int j0 = 0;

fp1 = fopen( in_fname, “rb” );

if ( fp1 == NULL ) {

printf( “cannot open in-file.\n” );

exit(1); /*如果不能打开要加密的文件,便退出程序*/

}

fp2 = fopen( out_file, “wb” );

if ( fp2 == NULL ) {

printf( “cannot open or create out-file.\n” );

exit(1); /*如果不能建立加密后的文件,便退出*/

}

while ( pwd[ ++j0 ] );

ch = fgetc(fp1);

/*加密算法开始*/

while ( !feof( fp1 ) ) {

fputc( ch ^ pwd[ j >= j0 ? j = 0 : j++ ], fp2 ); /*异或后写入fp2文件*/

ch = fgetc( fp1 );

}

fclose( fp1 ); /*关闭源文件*/

fclose( fp2 ); /*关闭目标文件*/

}

/*程序结束*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值