成都创新互联网站制作重庆分公司

python凯撒加密函数 凯撒加密解密算法python

用Python语言从文件夹中提取文件进行凯撒加密?

import string

创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十多年时间我们累计服务了上千家以及全国政企客户,如成都LED显示屏等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞美。

def kaisa(s, k): #定义函数 接受一个字符串s 和 一个偏移量k

lower = string.ascii_lowercase #小写字母

upper = string.ascii_uppercase #大写字母

before = string.ascii_letters #无偏移的字母顺序 小写+大写

after = lower[k:] + lower[:k] + upper[k:] + upper[:k] #偏移后的字母顺序 还是小写+大写

#分别把小写字母和大写字母偏移后再加到一起

table = ''.maketrans(before, after) #创建映射表

return s.translate(table) #对s进行偏移 即加密

s = input('请输入一个字符串:')

k = int(input('请输入一个整数密钥:'))

print(kaisa(s, k))

调用此函数

python凯撒密码实现

# codinng=utf-8

x = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' ')

y = 'n o p q r s t u v w x y z a b c d e f g h i j k l m'.split(' ')

X = map(lambda x: x.upper(), x)

Y = map(lambda x: x.upper(), y)

dict_kaisa = dict(zip(x + X, y + Y))  # 创建一个字典, 键为原字符串, 值为加密字符串

# 定义凯撒加密函数, 输入字符串, 输出凯撒加密后字符串

def kaisa(string):

result = []

for i in range(len(string)):

if string[i] in dict_kaisa.keys():

result.append(dict_kaisa[string[i]])

else:

result.append(string[i])

return ''.join(result)

print(kaisa('The Zen of Python'))  # 结果为Gur Mra bs Clguba

求python中的恺撒密码的加密,解密,以及破解的程序

凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。

如下代码是以偏移量为13展开计算的。123

源代码如下:

sr1="abcdefghijklmnopqrstuvwxyz"sr2=sr1.upper()

sr=sr1+sr1+sr2+sr2

st="The Zen of Python"sResult=""for j in st: if j==" ":

sResult = sResult +" "

continue

i=sr.find(j) if(i-1):

sResult=sResult+sr[i+13]print sResult12345678910111213

运行结果为:

Gur Mra bs Clguba

python中凯撒密码num=num+key是什么意思

python中凯撒密码num=num+key是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。根据查询相关公开信息,凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替代方法将信息中的每一个英文字母循环替换为字母表序列中该字符后面的第k个字符(k为密钥)。加密方法:C=(P+k)mod26,P为原文字符,k为密钥,解密方法:P=(C-3)mod26。


本文题目:python凯撒加密函数 凯撒加密解密算法python
转载源于:http://cxhlcq.com/article/dosgjdj.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部