“二八”妙龄写密码,看谁聪明“爱死他”
“二八”妙龄写密码,看谁聪明“爱死他”
题目背景
“二八”妙龄写密码,看谁聪明“爱死他”。
密文:766C7273626F76706A5E6F715F7271766C72706D626B71716C6C71666A62
解密过程
根据提示考虑十六进制转十进制,再由ASCII码转字符
解密代码如下:
int res[30];
void decode(char *str)
{
int i, bias;
// 十六进制转十进制数
for (i = 0; i < 60; i+=2)
{
int temp = str[i+1] > 58 ? (str[i+1] - 55) : (str[i+1] - 48);
res[i/2] = (str[i] - 48)*16 + temp;
}
// 加上偏移量
for (bias = -128; bias <= 128; bias++)
{
for (i = 0; i < 30; i++)
{
printf("%c", res[i] + bias);
}
printf("\n");
}
}
输出结果:
从里面选出最像明文的字符串:
you very smart but you spent too time
搞定收工!