信息安全概论 脑洞大开 密文简单破译
题目
“二八”妙龄写密码,看谁聪明“爱死他”。
密文:766C7273626F76706A5E6F715F7271766C72706D626B71716C6C71666A62
解答
从“二八”猜测与十六进制有关,从“爱死他”猜测与ASCII有关。
结合密文也是一个字符串且每两位(从“二八”的提示猜测)一起正好可以看作一个十六进制数,那么很可能是需要把这个十六进制数转成十进制,再用ASCII码的形式来理解十进制数。考虑到可能不止这么简单,加密还可能使用凯撒密码做了偏移,写代码检查如下:
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 10000010
int text[MAXLENGTH];
int main()
{
const char *str = "766C7273626F76706A5E6F715F7271766C72706D626B71716C6C71666A62";
const int len = strlen(str);
int n = 0;
for(int i = 0; i < len; i += 2) {
sscanf(str + i, "%2x", &text[n++]);
}
for(int j = 0; j < 26; j++) {
for(int i = 0; i < n; i++) {
printf("%c ", text[i] + j);
}
printf("\n");
}
return 0;
}
输出如下:
v l r s b o v p j ^ o q _ r q v l r p m b k q q l l q f j b
w m s t c p w q k _ p r ` s r w m s q n c l r r m m r g k c
x n t u d q x r l ` q s a t s x n t r o d m s s n n s h l d
y o u v e r y s m a r t b u t y o u s p e n t t o o t i m e
z p v w f s z t n b s u c v u z p v t q f o u u p p u j n f
{ q w x g t { u o c t v d w v { q w u r g p v v q q v k o g
| r x y h u | v p d u w e x w | r x v s h q w w r r w l p h
} s y z i v } w q e v x f y x } s y w t i r x x s s x m q i
~ t z { j w ~ x r f w y g z y ~ t z x u j s y y t t y n r j
u { | k x y s g x z h { z u { y v k t z z u u z o s k
€ v | } l y € z t h y { i | { € v | z w l u { { v v { p t l
?w } ~ m z ?{ u i z | j } | ?w } { x m v | | w w | q u m
?x ~ n { ?| v j { } k ~ } ?x ~ | y n w } } x x } r v n
?y € o | ?} w k | ~ l ~ ?y } z o x ~ ~ y y ~ s w o
?z € ?p } ?~ x l } m € ?z € ~ { p y z z t x p
?{ ??q ~ ? y m ~ € n ?€ ?{ ? | q z € € { { € u y q
?| ??r ?€ z n ?o ???| ?€ } r { ??| | ?v z r
?} ??s € ??{ o € ?p ???} ??~ s | ??} } ?w { s
?~ ??t ???| p ??q ???~ ?? t } ??~ ~ ?x | t
? ??u ???} q ??r ??? ??€ u ~ ?? ?y } u
?€ ??v ???~ r ??s ???€ ???v ??€ € ?z ~ v
????w ??? s ??t ???????w € ?????{ w
????x ???€ t ??u ???????x ??????| € x
????y ????u ??v ???????y ??????} ?y
????z ????v ??w ???????z ??????~ ?z
????{ ????w ??x ???????{ ?????? ?{
观察到第四行(偏移为3)为“y o u v e r y s m a r t b u t y o u s p e n t t o o t i m e”,也就是“youverysmartbutyouspenttootime”看起来像是人话,因此选择这个作为破译的结果。

浙公网安备 33010602011771号