浅谈古典密码

本文介绍了早期的数字化通信方式——摩斯密码,以及凯撒密码和培根密码这两种替代密码的加密原理和实例。通过ASCII码的应用,展示了如何在实际问题中解码加密文本,如在线评测平台BugkuCTF中的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一摩斯密码:

摩斯密码是一种早期的数字化通信形式,由"."和"-"两种符号组成(但不同于现代只使用0和1两种状态的二进制密码)

摩斯密码表(常见符号)

例题:(easy_crypto - Bugku CTF)

题目通过将0替换为".",将1替换为"-",如下

通过摩斯密码解码破译如下

将字母改为小写,%u7b和%u7d分别改为"{","}".即为结果

凯撒密码:

凯撒密码是典型的替代密码,加密原理是把明文中的所有字母都在字母表中向后(或向前)按照一个固定数目进行移位后替换成密文,而数字和非字母字符则保持不变。

位移数就是凯撒密码的密钥。共26个英文字母即凯撒密码只有25中可能的密钥。

例题:

题目:BUUCTF在线评测 (buuoj.cn)

根据ASCLL表

通过a>f,需要移动5位

f>i需要移动6位

Z>a需要7位

移动位数逐级增加,即变异

因此写个脚本

str = 'afZ_r9VYfScOeO_UL^RWUc'
k = 5
for i in str:
    # 字符逐个转ASCII码
    asc = ord(i)
    # ASCII码偏移
    asc = asc + k
    # ASCII码转字符
    asc = chr(asc)
    print(asc, end="")
    # 合起来写就是:print(chr(ord(i) + k),end='')
    k = k + 1

培根密码

培根密码是一种简单的替换密码,密码字符只有两个:a和b,每个明文字符都会被替换为一个由a和b组成的长度为5的字符串。

如明文h被替换为密文aabbb

密文字符也可以选择任意两个其他字符

如果看到这种全部由两个字母组成的密文,那么就可以猜测培根密码。

栅栏密码

例题:聪明的小羊 - Bugku CTF

可知栏数=2

解密即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值