WeChall - Training - Bacon Returns
Challenge
Mr. Bacon is back with an advanced Bacon cipher. The encoder uses a non-standard mapping where the case pattern depends on the letter's position in the alphabet (a-m vs n-z), not just uppercase/lowercase.
Solution
从 GitHub 源码 (gizmore/gwf3) 分析编码器逻辑:
1 | // bit=0: letter a-m → UPPERCASE (match), n-z → lowercase (skip) |
解码方法: 1. 遍历 carrier 文本,只看 UPPERCASE 字母 2. 每个大写字母提取 1 bit:a-m→0, n-z→1 3. 小写字母是噪声(编码器跳过的位置),忽略 4. 拼接 bit stream,每 5 bit 一组查 26 字母表(A=00000..Z=11001) 5. X=space
1 | letters = [c for c in encoded_text if c.isalpha()] |