1 solutions

  • 0
    @ 2022-5-22 17:23:20

    分析

    Vigenere密码

    百科

    核心思想:可以理解为密钥在滚动加密明文。

    Vigengere密码使用一个词组作为密钥,第一个密钥字母加密明文的第一个字母,第二个密钥字母加密明文的第二个字母,等所有密钥字母使用完后,密钥又再循环使用(即,后文中未加密明文的第一个对应密钥的第一个,后面一一对应)。

    可行代码

    #include <iostream>
    #include <string.h>
    using namespace std;
    const int MAX = 10000;
    int main() {
        char key[100];
        char plaintext[MAX];
        cin >> plaintext >> key;
        int len = strlen(plaintext);
        int keyLen = strlen(key);
        for (int i = 0; i < len;)
            for (int j = 0; j < keyLen && i < len; j++) 
                plaintext[i++] = 'a' + 
                    (plaintext[i] + key[j] - 2 * 'a') % 26;
        puts(plaintext);
        return 0;
    }
    

    Information

    ID
    6509
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    62
    Accepted
    21
    Uploaded By