移位加密算法(凯撒密码)

加密:

#include<stdio.h>
//#define KEY 3
int main(void)
{
    char MING[1000];
    char MI[1000];
    int k,i;
    printf("请输入秘钥k:");
    scanf("%d",&k);
    printf("\n");
    getchar();
    printf("请输入明文:");
    gets(MING);
    for(i=0;MING[i]!='\0';i++)
    {
        if(MING[i]<65)
            MI[i]=MING[i];
        if(MING[i]>='A'&&MING[i]<='Z')
            MI[i]=((MING[i]-'A')+k)%26+'A';
        if(MING[i]>='a'&&MING[i]<='z')
            MI[i]=((MING[i]-'a')+k)%26+'a';
    }
    MI[i]='\0';
    puts(MI);

    return  0;
}


解密:

#include<stdio.h>
//#define KEY 3
int main(void)
{
    char MING[100];
    char MI[100];
    int k,i;
    printf("请输入秘钥k:");
    scanf("%d",&k);
    printf("\n");
    getchar();
    printf("请输入密文:");
    gets(MI);
    for(i=0;MI[i]!='\0';i++)
    {
        if(MI[i]>='A'&&MI[i]<='Z')
            MING[i]=((MI[i]-'A'+26)-k)%26+'A';
        if(MI[i]>='a'&&MI[i]<='z')
            MING[i]=((MI[i]-'a'+26)-k)%26+'a';
    }
    MING[i]='\0';
    puts(MING);

    return  0;
}

猜你喜欢

转载自blog.csdn.net/CSDNPM250/article/details/79689256