Skip to content

Commit 39f37d6

Browse files
authored
Merge pull request #166 from Cryflmind/main
Fix the question block in encode_extra.md
2 parents eafe401 + 524a866 commit 39f37d6

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/hc-misc/Encode_extra.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ REOREREREREREOREREREREREREOOOREOREREREREOREREREOREREREOOREOREREREREOREREREREREOR
363363
- E永远都会在R后面出现
364364
- 虽然里面似乎出现了OOOOO,但是更可能的一种编码方式是使用单个O
365365

366-
!!! Question 为什么一定是O而不是OO/OOO
366+
!!! Question "为什么一定是“O”而不是“OO”或“OOO”?"
367367
这里可以参考哈夫曼编码的特点,我们可以注意到这一串编码结果中没有任何空格,但是存在落单的O,说明落单的O一定是有含义的。
368368
如果编码表中存在落单的O,那么假如存在OO(O)的编码,解析OOOOO的时候就会出现一个问题:你无法得知这里的OO到底是2个落单的O还是1OO(显然OOO也是同理的)
369369
这也是无分隔符编码需要注意的一个细节:某个已经编码过的元素不能称为新的待编码元素的前缀或后缀。
@@ -373,7 +373,7 @@ REOREREREREREOREREREREREREOOOREOREREREREOREREREOREREREOOREOREREREREOREREREREREOR
373373
- RE是一个整体,共同表示某种元素
374374
- 编码表中只存在RE和O两种元素,也就是这里的编码表示的很可能是一种只含两种元素的替换型编码。
375375

376-
!!! Question 为什么很可能是替换型而不可能是位移型?
376+
!!! Question "为什么更可能的是替换型而不是位移型?"
377377
其实原因很简单,如果被编码的元素是位移型编码的,最终的编码呈现出来不应该只出现2种元素。
378378
比如如果原文是`Hello CTF`,经过密钥为3的凯撒位移密码结果应该为`Khoor FWI`,所以这里我们更倾向于使用的是替换型。
379379
当然这个说法并不绝对,比如我可能已经提前把编码前的原文处理成了一种只有两种元素的新内容呢?

0 commit comments

Comments
 (0)