简单的python凯撒加密(python凯撒密码加密解密)

http://www.itjxue.com  2023-04-02 02:30  来源:未知  点击次数: 

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

import string

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))

调用此函数

凯撒加密算法(最简单的对称加密)

凯撒密码是罗马扩张时期朱利斯? 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动 2 位,则 字母 A 将变为 C,字母 B 将变为 D,…,字母 X 变成 Z,字母 Y 则变为 A,字母 Z 变为 B。

因此,假如有个明文字符串“Hello”用这种方法加密的话,将变为密文: “Jgnnq” 。而如果要解密,则只要将字母向相反方向移动同样位数即可。如密文“Jgnnq”每个字母左移两位 变为“Hello” 。这里,移动的位数“2”是加密和解密所用的密钥。

该程序既可用于加密又可用于解密。只要传入明文和偏移量即可加密,解密需要传入密文和负的偏移量就可以解密。

输出的结果:

凯撒密码由于加解密比较简单,密钥总共只有 26 个,攻击者得到密文后即使不知道密钥,也可一个一个地试过去,最多试 26 次就可以得到明文。

这里不光根据 offset 偏移进行加密,还加上了字符所在的下标进行混合加密。

输出的结果:

如何用python编写凯撒密码 ?

凯撒密码是对字母表整体进行偏移的一种变换加密。因此,建立一个字母表,对明文中每个字母,在这个字母表中偏移固定的长度即可得到对应的密文字母。

最基本的实现如下:

def?caesarcipher(s:?str,rot:?int=3)?-str:

????_?=?'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

????encode?=?''

????i?=?0

????for?c?in?s:

????????try:

????????????encode?+=?_[(_.index(c.upper())?+?rot)?%?len(_)]

????????except?(Exception,)?as?e:

????????????encode?+=?c

????return?encode

print(caesarcipher('hellow'))

print(caesarcipher('KHOORZ',?-3))

如果要求解密后保持大小写,那么,字母表_还需要包含所有小写字母并且index时不对c做upper处理.

同样的,也可以在字母表中追加数字,各种符号,空格等.

(责任编辑:IT教学网)

更多

推荐其他营销文章