c中单字母替换密码的解密

时间:2017-10-29 01:04:44

标签: c

int main(void) {

    char plain[6] = "lorem";
    char cipher[27] = "nbajyfowlzmpxikuvcdegrqsth";
    int length = strlen(plain);
    char encrypted_text[6] = "pkcyx";

    /*encryption*/
    for (int i = 0 ; i < length ; i++) {
        plain[i] = cipher[plain[i] - 97];
        //printf("%c", plain[i]);
    }

    /*decryption*/
    for (int i = 0 ; i < length ; i++) {
        encrypted_text[i] = cipher index of encryted text.... how to write this... 
        eg: cipher index of o is 6 (0-n ,1-b, 2-a, 3-j, 4-y, 5-f, 6-o) ... i want this index so i + 97 will decrypt the msg  
        //printf("%c", plain[i]);
    }
}

我可以知道如何获得加密字母的密码索引吗?

1 个答案:

答案 0 :(得分:0)

plain[i] = cipher[plain[i] - 97];覆盖简单,不应该写encrypted_text吗?此外,plain[i] - 97不太可能是密码数组的有效索引。

encrypted_text[i] = cipher index of encrypted text....是错误的,您应该解密encrypted_text

替换密码的解密要求您知道密码并使用该代码反转对纯文本执行的任何操作。在您的情况下,初始加密操作只是无效的C代码。