如何用C语言对文件进行加密和解密急求......................

如何用C语言对文件进行加密和解密急求......................,第1张

文件分为文本文件和二进制文件。加密方法也略有不同。

1、文本文件

加密的主要是文本的内容,最简单的方法就是修改文档的内容,比如1txt中的文件内容:

abcd

只要给每一个字符+1,就可以实现加密。文件内容即会变为

bcde

2、二进制文件加密

二进制文件加密也就是对应用程序加密,需要理解可执行文件格式,比如Windows平台的Exe文件它是PE结构,Linux上的可执行文件是ELF结构,要对这样的程序进行加密,实际上是开发一种叫做“壳”的程序,这种程序的开发,需要将扎实的底层基础,同时也需要对软件加密解密有细致的理解,比如流行的vmprotect、z壳以及早些年的upx壳、aspack等等。

3、无论哪种加密都牵涉到文件 *** 作的问题,使用C语言进行文件 *** 作时,极少使用C标准库中的I/O函数,大多数使用 *** 作系统提供的内存文件映射相关的API函数,有兴趣,可以搜索相关的资料。

当int用即可,一个for循环解决

加密

char a[1000];

char x;

int i;

gets(a);

x=getchar(); //这里注意,要是x读入不进去,前面加一个fflush(stdin);

for(i=0;a[i];i++)

a[i]+=x+i;

解密

for(i=0;a[i];i++)

a[i]-=x+i;

#include <stdioh>

#define isletter( c )    ( ((c)>='a'&&(c)<='z') || ((c)>='A'&&(c)<='Z') )

void Enc( const char str, char out, int key )

{

    int i = 0; 

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] + key;

            if ( ! isletter( out[i])  )

                out[i] -= 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

void Denc( const char str, char out, int key )

{

    int i=0;

    while( str[i] )

    {

        if ( isletter( str[i] ) )

        {

            out[i] = str[i] - key;

            if ( ! isletter( out[i] ) )

                out[i] += 26;

        }

        else

            out[i] = str[i];

        i++;

    }

    out[i] = 0;

}

int main()

{

    char  out[100], out2[100];

    Enc( "THE QUICK BROWn fox jumps over THE LAZY DOG", out, 3 );

    printf( "%s\n", out );

    Denc( out, out2, 3 );

    printf( "%s\n", out2 );

}

以上就是关于如何用C语言对文件进行加密和解密急求......................全部的内容,包括:如何用C语言对文件进行加密和解密急求......................、C语言程序:数据的简单加密和解密:对于重要的信息,为了在传输或存储时避免泄露,可以在传输或存储前进行加、用C语言编程恺撒密码加密解密程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10628875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存