可以修改下。
文件夹加密不会。只有文件加密的,呵呵。个人觉得这个写的还不错
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void dofile(char *in_fname,char *pwd,char *out_fname)/*对文件进行加密的具体函数*/
void main(int argc,char *argv[])/*定义main()函数的命令行参数*/
{
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)/*关闭目标文件*/
}
/*程序结束*/
“任意名称”+“.”“系统中已注册的CLSID”这样命名的文件夹都不是普通文件夹图标。
删除不了是因为有那个“..”子文件夹,它的名称是不被资源管理器允许的,所以无法进行 *** 作。
dos下可以删除,只不过你的方法不对。可能是rd
/s
/q
..\
总之这样的加密太好破解叻。不用资源管理器,用个第三方文件查看器即可破解。
比如Total
commander
,或者ARK工具比如Xuetr。
有问题请补充。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)