您的位置:首页 > 其它

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

2018-03-25 18:43 113 查看
加密:
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: