信息安全概论作业“脑洞大开”

“二八”妙龄写密码,看谁聪明“爱死他”。

密文:76 6C 72 73 62 6F 76 70 6A 5E 6F 71 5F 72 71 76 6C 72 70 6D 62 6B 71 71 6C 6C 71 66 6A 62

思路:二八等于十六,所以应该先从十六进制转为十进制。爱死他为ascii谐音,且从密文格式看出确实为ascii编码。故猜测为凯撒编码,遍历1到10的字符偏移量,从中得到偏移量为3时像是正常人话。所以这个是一个偏移量为3的凯撒密码。至于偏移量为什么是3,猜测是2的三次方等于8的缘故,也是二八暗示得来。

代码:

int main(){
    int char[30];
    char* string = "766C7273626F76706A5E6F715F7271766C72706D626B71716C6C71666A62";
    decode(string);
    return 0;
}
void decode(char *str)
{
    for (int i = 0; i < 60; i+=2)
    {
        int dec1= str[i+1] > 58 ? (str[i+1] - 55) : (str[i+1] - 48);
        int dec2= str[i] > 58 ? (str[i] - 55) : (str[i] - 48);
        res[i/2] = dec2*16 + dec1;
    }
    for (int offset = 0; offset <= 10; offset++)
    {
        for (i = 0; i < 30; i++)
        {
            printf("%c", char[i] + offset);
        }
        printf("\n");
    }    
}   

 

明文:you very smart but you spent too time

posted @ 2022-04-27 10:12  WildMice  阅读(79)  评论(0编辑  收藏  举报