汉扬编程 C语言入门 C语言 加密解密 生成文件

C语言 加密解密 生成文件

#include

#include

#include

#include

FILE *fptr;

FILE *kptr;

FILE *dptr;

int key[1000]={0};

char original[1000],encrypted[1000];

void initial()

{

    fptr=fopen(\”encrypted.txt\”,\”wb+\”);

    kptr=fopen(\”key.txt\”,\”wb+\”);

}

void encryption(char original[],char entercrypted[],int key[])

{

    int i,len;

    len=strlen(original);

    printf(\”The original text is:\”);

    puts(original);

    for(i=0;i        entercrypted[i] = original[i] + key[i];

    entercrypted[i]=0;

    for(i=0;i    {

        printf(\”%c\”,fputc(entercrypted[i],fptr));

    }

    for(i=0;i<1000;i++)

        fprintf(kptr,\”%d\”,key[i]);

    printf(\”Encrypted is:%s\\n\\n\”,entercrypted);

}

void decryption(char original[],char entercrypted[],int key[])

{

    int i,len;

    len=strlen(original);

    for(i=0;i        original[i]=entercrypted[i]-key[i];

    original[i]=0;

    printf(\”Original is:%s\\n\\n\”,original);

}

int main()

{

    int i;

    int choice;

    initial();

    puts(\”input original message:\”);

    gets(original);

    srand(time(NULL));

    for(i=0;i<1000;i++)

        key[i] = rand()%72;

    while(1)

    {

        printf(\”If you want to encrypte please enter 1\\n\”);

        printf(\”If you want to decrypte please enter 2\\n\”);

        printf(\”If you want to stop the programm please enter 3\\n\”);

        printf(\”Your choice is:\”);

        scanf(\”%d\”,&choice);

        switch(choice)

        {

            case 1:

            encryption( original, encrypted, key);

            break;

            case 2:

            decryption( original, encrypted, key);

            break;

            default: return 0;

        }

    }

}

已经帮你改好了!但是你的程序有很大的问题,因为程序只有在执行完之后才会在文件文件中显示输入文件中的内容,所以无法再执行过程中入读密文。如果第二次打开后再读入密文的话,那么程序又会随机生成新的密钥,所以解密时我直接读取的entercrypted字符数组。你的加密方式其实并不安全,建议你可以选择des加密,个人使用的话安全性没问题,而且速度非常之快,如果你对安全性有更高的要求话,你可以选择pgp,那是目前安全性最高的加密软件。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/7160.html

C语言中 \\b 和 \\r 都怎么用啊

(printf与scanf的区别)短小精悍,最全介绍,C语言输入输出printf、scanf

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部