信息安全概论作业“脑洞大开”
“二八”妙龄写密码,看谁聪明“爱死他”。
密文: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