int main()
{char ch
FILE *fp1,*fp2
fp1=fopen("d:\\file1.txt","r")
fp2=fopen("d:\\file2.txt","w")
printf("加密后的内容:\n")
while((ch=fgetc(fp1))!=EOF)
{ch^=0x6a putchar(ch) fputc(ch,fp2)}
fclose(fp1)
fclose(fp2)
printf("\n解密后的内容:\n")
fp2=fopen("d:\\file2.txt","r")
while((ch=fgetc(fp2))!=EOF)
{ch^=0x6a putchar(ch)}
return 0
}
文件分为文本文件和二进制文件。加密方法也略有不同。1、文本文件
加密的主要是文本的内容,最简单的方法就是修改文档的内容,比如1.txt中的文件内容:
abcd
只要给每一个字符+1,就可以实现加密。文件内容即会变为
bcde
2、二进制文件加密
二进制文件加密也就是对应用程序加密,需要理解可执行文件格式,比如Windows平台的Exe文件它是PE结构,Linux上的可执行文件是ELF结构,要对这样的程序进行加密,实际上是开发一种叫做“壳”的程序,这种程序的开发,需要将扎实的底层基础,同时也需要对软件加密解密有细致的理解,比如流行的vmprotect、z壳以及早些年的upx壳、aspack等等。
3、无论哪种加密都牵涉到文件 *** 作的问题,使用C语言进行文件 *** 作时,极少使用C标准库中的I/O函数,大多数使用 *** 作系统提供的内存文件映射相关的API函数,有兴趣,可以搜索相关的资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)