本文实例讲述了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"您的输入有误!")

三 运行结果

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.jb51.net/password/hash_md5_sha

希望本文所述对大家Python程序设计有所帮助。

php实现凯撒密码加密算法,Python实现的凯撒密码算法示例相关推荐

  1. python爬楼梯_Python3爬楼梯算法示例

    Python3爬楼梯算法示例 本文实例讲述了Python3爬楼梯算法.分享给大家供大家参考,具体如下: 假设你正在爬楼梯.需要 n 步你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同 ...

  2. python汉诺塔算法解析,python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  3. php封装一个加密算法,PHP封装的非对称加密RSA算法示例

    本文实例讲述了PHP封装的非对称加密RSA算法.分享给大家供大家参考,具体如下: 将php的openssl扩展中的非对称加密函数封装成一个Rsa类. 需要注意的是,在windows上,需要打开open ...

  4. playfair密码和凯撒密码加密算法的Java实现

    文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...

  5. python计算最大公约数函数_Python实现的求解最大公约数算法示例

    本文实例讲述了Python实现的求解最大公约数算法.分享给大家供大家参考,具体如下: 使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式.其实,我写分解质因式程序的时候就是因为发现 ...

  6. python写排列组合_Python实现的简单排列组合算法示例

    本文实例讲述了Python实现的简单排列组合算法.分享给大家供大家参考,具体如下: 1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍 2.一个列表数据任意组合 主要是利用 ...

  7. python中最小公倍数函数_Python实现的求解最小公倍数算法示例

    这篇文章主要介绍了Python实现的求解最小公倍数算法,涉及Python数值运算.判断等相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现的求解最小公倍数算法.分享给大家供大家参考,具 ...

  8. 用python编写一个汉诺塔的移动函数_python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  9. 凯撒密码加密算法python_Python密码学入门:凯撒密码

    1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...

最新文章

  1. keras Classifier 分类
  2. Electrification Plan
  3. Django入门实战【3步曲】
  4. python tkinter 循环显示文本_Python简易音乐播放器
  5. 国家法定晚婚年龄是多少
  6. javascript中的this使用场景
  7. 一、操作系统——处理机(作业)调度算法:先来先服务算法FCFS、最短作业优先算法SJF(非抢占式)、 最短剩余时间优先算法SRTN(抢占式)、最高响应比优先算法HRRN
  8. linux环境 Oracle客户端连接远程Oracle服务端
  9. OJ1066: 字符分类统计
  10. QTP的那些事--XPath的重要使用
  11. 《利用Python进行数据分析·第2版》第6章 数据加载、存储与文件格式
  12. [LeetCode]题解(python):012-Integer to Roman
  13. 推荐一款ORM工具 FOR ADOBE AIR
  14. Java代码质量改进之:使用ThreadLocal维护线程内部变量
  15. 洛谷P3764 签到题 III
  16. win7x64 连接oracle 客户端 vs 2010调试 提示“ORA-12154: TNS: 无法解析指定的连接标识符 ”
  17. 快手sig签名和did egid的注册(操作太快了,请稍微休息一下)
  18. IPv6实验5:IPv4到IPv6的过渡
  19. 诗词对仗常用字表(笠翁对韵)
  20. CSAPP bomblab

热门文章

  1. 连续两天高烧_连续工作两天,可以看电视11秒
  2. mailto 附带附件_为什么附带项目如此重要
  3. 运用Logistic模型检验影响企业现金分红的主要因素
  4. Python 爬虫+tkinter界面 实现历史天气查询
  5. Python高级爬虫实战,JS解密咪咕音乐登录参数分析
  6. Python中匿名函数与内置高阶函数详解
  7. 二叉树的概念及其遍历方法 - python实现
  8. Team Foundation Server 2010 安装、部署与配置(七):创建 Team Project 时的一个 Issue:TF218027 .
  9. ScriptManager和ClientScriptManager
  10. Python《多线程并发爬虫》