培根密码
培根密码使用两种不同的字体,代表 A 和 B,结合加密表进行加解密。我认为它本质上其实是一种隐写术。
上面的是常用的加密表。还有另外的一种加密表,可认为是将 26 个字母从 0 到 25 排序,以二进制表示,A 代表 0,B 代表 1。
下面这一段内容就是明文 steganography 加密后的内容,正常字体是 A,粗体是 B: To encode a message each letter of the plaintext is replaced bya groupoffive of the letters'A' or 'B'.
可以看到,培根密码主要有以下特点
- 只有两种类型的字符
- 每一段的长度为 5
- 加密内容会有特殊的字体之分,亦或者大小写之分。 破解方法
在线网站:http://rumkin.com/tools/cipher/baconian.php当然,你非要爆破的话我也不拦你。
falg应该是flag,问就是打CTF打的。 破解方法
可以口算。
以下是解码脚本,大家可以随意取用。
def decrypt_cloud_shadow_code(encoded_message):
# 将数字映射到字母(1 -> A,2 -> B,...,26 -> Z)
num_to_letter = {i: chr(64 + i) for i in range(1, 27)}
# 使用'0'作为分隔符将消息分成组
groups = encoded_message.split('0')
# 解密每个组
decrypted_message = ''
for group in groups:
if group: # 检查组是否非空
total = sum(int(digit) for digit in group)
decrypted_message += num_to_letter.get(total, '?') # 对于无效数字,使用'?'表示
return decrypted_message