⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vigenere.cpp

📁 密码学 密码学 加解密 Vigenere
💻 CPP
字号:
#include<stdio.h>
#include"math.h"
#include"string.h"
main()
{
    char m[100];
    char ma[100],mb[100],mc[100],md[100];
    char key[100];
    printf("请输入原始明文:");
    scanf("%s",&m);
    printf("\n");
    printf("凯撒加密后密文:");
    for(int i=0;i<strlen(m);i++)
    {
        if(i>100)
        {
            printf("密文过长");
            break;
        }
        if(m[i]>='a'&&m[i]<='w')
            ma[i]=m[i]-29;
        else if(m[i]>'w'&&m[i]<='z')
            ma[i]=m[i]-55;
        else
            {printf("您输入的明文不合规范");
            break;}
        printf("%c",ma[i]);
    }
    printf("\n");
    printf("凯撒解密后:");
    for(int i=0;i<strlen(ma);i++)
    {
        if(ma[i]>='D'&&ma[i]<='Z')
            mb[i]=ma[i]+29;
        if(ma[i]>='A'&&ma[i]<'D')
            mb[i]=ma[i]+55;
        printf("%c",mb[i]);
    }
    printf("\n");
    printf("请输入密钥:");
    scanf("%s",&key);
    printf("\n");
    printf("密文是:");
    for(int i=0;i<strlen(m);i++)
    {
        for(int j=0;j<strlen(key);j++)
        {
            if(m[i]>96&&m[i]<123)
                mc[i]=(m[i]-97+key[j]-97)%26+97;
            if(m[i]<96||m[i]>123||key[j]<96||key[j]>123)
            {
                printf("输入的字符不合规定");
                break;
            }
        }
        printf("%c",mc[i]);
    }
    printf("\n");
    printf("解密后:");
    for(int i=0;i<strlen(m);i++)
    {
        for(int j=0;j<strlen(key);j++)
        {
            if(mc[i]>96&&mc[i]<123)
            {
                if(mc[i]-key[j]>0)
                    md[i]=(mc[i]-97-(key[j]-97))%26+97;
                else
                    md[i]=(mc[i]-97-(key[j]-97)+26)%26+97;
            }
        }
        printf("%c",md[i]);
    }
    printf("\n");
            

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -