编写python程序实现移位密码_移位密码
密码学简介
这是我以前所不知道的。
密码学的基本目的是使两个在不安全信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。
定义:一个密码体系是满足一下条件的五元组(P,C,K,E,D)
P代表所有可能的明文组成的有限集
C代表所有可能的密文组成的有限集
K代表密钥空间,由所有可能的密钥组成的有限集
对于每一个k∈K,都存在一个加密规则ek∈E和相应的解密规则dk∈D。并且对每对ek:P→C,dk:C→P,满足条件:对每一个明文x∈P,均有dk(ek(x))=x
移位密码
其基础是数论中的模运算
假设a和b均为整数,m为一正整数,若m整除b-a,则可将其表达成a≡b(mod m)。式a≡b(mod m)读作“a与b模m同余”,正整数m称为模数。
定义
令P=C=K=Z26,对0<=K<=25,任意的x,y∈Zm,定义
ek(x)=(x+K)mod 26
和
dk=(y-K)mod 26
凯撒密码
当K=3时,此密码叫做凯撒密码,因为他首先被儒乐 凯撒(就是那个凯撒大帝)所使用的。
他将26个字母与数字一一对应,通过移位与mod26,来进行转换。
下面我用python实现加密解密
#加密
def CaserEncode(m,k):
c=''
for i in m:
c+=chr(ord(i)+k)
return c
# 解密
def CaserDecode(c,k):
m=''
for i in c:
m+=chr(ord(i)-k)
return m
栅栏密码
另一种移位密码,栅栏密码通过将明文进行分栏后重新组合进行加密。
例如 The quick brown fox jumps over the lazy dog,先把空格去掉,Thequickbrownfoxjumpsoverthelazydog
再按进行分栏(6个字母为一栏)
Thequi
ckbrow
nfoxju
mpsove
rthela
zydog
再从上到下每一列读出来,Tcnmrzhkfptyeboshdqrxoeouojvlgiwuea
python实现
# 加密
def FenceEncode(m,k):
j=0
L=[]
n=''
for i in m:
#print(i,end='')
n+=i
j+=1
if j==k:
L.append(n)
j=0
n=''
w=0
c=''
for w in range(len(L[0])):
for i in L:
try:
c+=i[w]
except:
pass
return c
#解密
def FenceDecode(c,k):
l=len(c)/k
if l-int(l)>0:
l=int(l)+1
else:
l=int(l)
p=0
n=''
L=[]
for i in c:
#print(i,end='')
n+=i
p+=1
if p==l:
L.append(n)
p=0
n=''
m=''
for w in range(len(L[0])):
for i in L:
try:
m+=i[w]
except:
pass
return m
其他移位密码
曲路密码,云影密码
原文链接:https://blog.csdn.net/weixin_43360152/article/details/108222398
编写python程序实现移位密码_移位密码相关推荐
- 编写python程序、计算账户余额_《易学Python》——第1章 为何学习Python 1.1 学习编程...
本节书摘来自异步社区<易学Python>一书中的第1章,第1.1节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区"异步社区"公 ...
- 编写python程序、计算账户余额_小明有20w存款存在余额宝中,按余额宝年收益为3.35%计算,用Python编写程序计算,多少年后小明的存款达到30w?...
[判断题]卤素灯泡是在灯泡内充入氟.氯等卤素气体. [单选题]我国刑法第12条关于溯及力的规定采取的是( ). [填空题]本地局域网 LAN 内, () 和无绳电话速率较低,主流带宽是 100kbps ...
- 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
出版者的话 译者序 前言 第1章 概述 1 1.1 计算机程序 1 1.2 深入剖析计算机 2 1.3 Python编程语言 4 1.4 熟悉编程环境 5 1.5 分析**个程序 9 1.6 错误 1 ...
- 编写python程序、计算账户余额_小明有20w存款存在余额宝中,按余额宝年收益为2.35%计算,用Python编写程序计算,多少年后小明的存款达到30w?...
[填空题]抓紧时间练习.( ),不得擅自离开( ). [判断题]swallow 意思是 燕子 (2.0分) [填空题]表达,表示 vt. (4.0分) [填空题]预知,预测 vt. [其它]2.入职在 ...
- 编写python程序的步骤_编写python程序和运行.py文件的方法步骤
前提:已安装好 Subliume Test 3 且已经添加好python编译系统,已安装好python3.7 一.新建一个文本文档,将后缀名改为.py 二.使用 Subliume Test 3 打开该 ...
- 编写python程序一年365天_编写第一个Python程序
无论读者使用的是哪种操作系统,相信都已经安装好了 Python 环境,可以通过命令行窗口或者 Python 自带的 IDLE 成功启动交互式解释器(如图所示). 本节将带领读者正式编写第一个 Pyth ...
- python意外缩进引发逻辑错误_如何编写 Python 程序
如何编写 Python 程序 从今以后,保存和运行 Python 程序的标准步骤如下: 对于 PyCharm 用户 打开 PyCharm. 以给定的文件名创建新文件. 输入案例中给出的代码. 右键并运 ...
- python公式如何编写_如何编写 Python 程序,资深Python大咖教你玩转Python
如何编写Python程序,这从来就不是一件很难的事. 下面我教你保存和运行 Python 程序的标准步骤,如下: 对于 PyCharm 用户 1. 打开 PyCharm. 2. 以给定的文件名创建新文 ...
- python手机编译器怎么编写程序_怎么用手机编写Python程序?
手机编写python程序,其实完全可行,目前有许多app都做了适配,下面我简单介绍3个,感兴趣的朋友可以尝试一下: 01.Python编译器 这是一个非常轻巧.便捷的手机python编程软件,安装包也 ...
- 编写python程序半径为2.11的圆球的体积_医学生理学(山东大学)知到智慧树题目答案...
我们常吃的花生米是种子 [单选题]动机说出自(),他认为回忆痛苦的经验将使人回到不愉快的过去,为避免痛苦感受在记忆中的重现,人们常常对这些感受和经验加以抑制,使之不出现在意识中,由此引起遗忘. A. ...
最新文章
- android 保存文件到本地可见_android 日记log保存到本地简单方法
- rsync 端口更换(默认873)
- DNS原理及其解析过程(转)
- svnserve.conf - snvserve 的仓库配置文件
- 一个案例彻底弄懂如何正确使用 mysql inndb 联合索引
- python3生成二维码实例fromm_Python使用mqtt极简例子
- OpenGL阴影添加学习材料及总结
- pxc mysql mycat_Mycat+Pxc的配置
- 【Day10】项目中如何处理安全问题
- 8个必备的Python GUI库
- Multi-View 3D Reconstruction
- 抽象工厂模式_设计模式(3) 抽象工厂模式
- pg数据库表接口和数据导出
- 手机图片怎么转文本?
- AIL(Android init Language)
- 网络原理TCP IP
- B 站上有哪些很好的学习资源?
- python线程池原理及使用
- 既想吸猫又不想当猫奴?这款治愈系的机器人或许会适合你
- oracle 序列/自增ID