求python中的恺撒密码的加密,解密,以及破解的程序
发布网友
发布时间:2022-04-24 06:07
我来回答
共3个回答
懂视网
时间:2022-04-18 09:47
这篇文章主要介绍了Python实现的凯撒密码算法,简单介绍了凯撒密码的概念、原理并结合实例形式分析了Python实现凯撒密码算法的相关定义与使用操作技巧,需要的朋友可以参考下
本文实例讲述了Python实现的凯撒密码算法。分享给大家供大家参考,具体如下:
一 介绍
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。
二 代码
# -*- coding:utf-8 -*-
import os
#==================================================================#
# 凯撒密码(caesar)是最早的代换密码,对称密码的一种 #
# 算法:将每个字母用字母表中它之后的第k个字母(称作位移值)替代 #
#==================================================================#
def encryption():
str_raw = raw_input("请输入明文:")
k = int(raw_input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_encry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) < 123-k:
str_list_encry[i] = chr(ord(str_list[i]) + k)
else:
str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
i = i+1
print ("加密
结果为:"+"".join(str_list_encry))
def decryption():
str_raw = raw_input("请输入密文:")
k = int(raw_input("请输入位移值:"))
str_change = str_raw.lower()
str_list = list(str_change)
str_list_decry = str_list
i = 0
while i < len(str_list):
if ord(str_list[i]) >= 97+k:
str_list_decry[i] = chr(ord(str_list[i]) - k)
else:
str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
i = i+1
print ("解密结果为:"+"".join(str_list_decry))
while True:
print (u"1. 加密")
print (u"2. 解密")
choice = raw_input("请选择:")
if choice == "1":
encryption()
elif choice == "2":
decryption()
else:
print (u"您的输入有误!")
三 运行结果
热心网友
时间:2022-04-18 06:55
凯撒密码作为一种最为古老的对称加密*,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是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
热心网友
时间:2022-04-18 08:13
输入:CAT 输出:DBU import string def caesar_shift(s): # Write your code here # To print results to the standard output you can use print # Example: print "Hello world!" table = string.maketrans(string.ascii_uppercase, string.asc...
python凯撒密码编写程序详解
如果字符不是字母,则直接将其添加到result字符串中。最后,程序返回加密后的结果。解密程序的实现与加密程序类似,只需要将移位的方向反过来即可。以下是一个简单的凯撒密码解密程序的示例:python def caesar_decrypt(text, shift):result = ""for char in text:if char.isalpha():ascii_code = ord(...
谁有PYTHON编写的凯撒密码的加密和解密代码?
给你写了一个.def convert(c, key, start = 'a', n = 26):a = ord(start)offset = ((ord(c) - a + key)%n)return chr(a + offset)def caesarEncode(s, key):o = ""for c in s:if c.islower():o+= convert(c, key, 'a')elif c.isupper():o+= convert(c, key, ...
python中凯撒密码num=num+key是什么意思
python中凯撒密码num=num+key是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。根据查询相关公开信息,凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替代方法将信息中的每一个英文字母循环替换为字母表序列中该字符后面的第k...
一个简单的凯撒密码加密解密代码演示—古典密码
凯撒密码的核心原理可以概括为“替换”。以我们的字母表为例,若位移量设定为3,则字母A将被替换为字母D,字母B替换为字母E,以此类推。以下是使用Python编写的凯撒密码加密和解密功能的完整代码,以及运行过程和结果。完整代码
python凯撒密码实现
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]])...
Python 程序编程问题,凯撒密码
self.dmap = dict(zip(b,a)) def encode(self, text): tmp = [ (x in self.emap and self.emap[x] or x) for x in text ] return ''.join(tmp) def decode(self, text): tmp = [ (x in self.dmap and self.dmap[x] or x)...
怎样用python中的字典编写对凯撒密码的加密和解密的程序?不用字典...
//1. Math.ceil()用作向上取整。//2. Math.floor()用作向下取整。alert(Math.ceil(10/3));//4 alert(Math.floor(10/3));//3 alert(Math.round(10/3));//3
怎么用Python编辑出此凯撒密码的解密密码?
凯撒密码的加密密钥与解密密钥是相反数,因此,k给相反数即可:kaisa(kaisa(s, 3), -3)
凯撒密码 求编程。语言不限。
{//加密 int i;int ch;for(i=0;str[i]!='\0';i++){ ch=str[i];if(isupper(ch))ch=(ch-'A'+key+26)%26+'A';else if(islower(ch))ch=(ch-'a'+key+26)%26+'a';str[i]=ch;} return str;} int main(void){ int testCase;int key;char s[maxlen];scanf("%d",&...
如何用python编写凯撒密码 ?
凯撒密码是对字母表整体进行偏移的一种变换加密。因此,建立一个字母表,对明文中每个字母,在这个字母表中偏移固定的长度即可得到对应的密文字母。最基本的实现如下:def caesarcipher(s: str,rot: int=3) ->str: _ = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' encode = '' i = 0 for c in ...