Python古典密码编程

本文介绍了Python编程实现的四种古典密码方法:恺撒密码,包括ROT-13特例;简单移位密码,通过密钥重新排列字母;栅栏密码,按特定间隔分组并垂直取值;以及比尔密码,使用数字序列选取文章中单词的首字母。这些密码技术是密码学的基础,有助于理解加密原理。
摘要由CSDN通过智能技术生成

目录

 

1、恺撒密码

2、简单移位密码

3、栅栏密码

4、比尔密码

 


 

1、恺撒密码

 

恺撒密码就是将字母按字母表顺序推移指定位数

例如:

明文为ace ,key为3

那么加密过程就是将明文中的每个字母向后推三位,密文为:dfh

 

ROT-13密码是恺撒密码的特殊形式,即key为13时的纯字母恺撒密码。

 

#!/usr/bin/python
# -*- coding:utf-8 _*-

"""
@author:evixenon
@time:2020/04/15
---恺撒密码解密脚本---
输入1是密文,输入2是解密类型,空格分隔
解密类型如下(输入数字):
1.纯大写字母移位
2.纯小写字母移位
3.纯字母分大小写移位
4.ASCII全可见字符移位
例子:python kaiser.py woshimiwen 2
"""

import sys

#c='qweoij309_'
typ=[65,97]


def decode(c,mod):
    # 大小写混合
    if mod =='3':
        for i in range(26):
            text=[]
            for x in c:
                if 64<ord(x)<91:
                    text.append(chr((ord(x)-65+i)%26+65))
                elif 96<ord(x)<123:
                    text.append(chr((ord(x)-97+i)%26+97))
                else:
                    text.append('?')
            print(i,''.join(text))
    # ASCII
    elif mod =='4':
        for i in range(94):
            text = []
            for x in c:
                tex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值