• 技术文章 >后端开发 >Python教程

    Python实现的凯撒密码算法示例

    不言不言2018-05-05 15:32:33原创7122
    这篇文章主要介绍了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"您的输入有误!")

    三 运行结果

    相关推荐:

    Python实现求一个集合所有子集的示例

    Python实现LR经典算法

    以上就是Python实现的凯撒密码算法示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 算法 密码
    上一篇:CentOS 6.5下安装Python 3.5.2 下一篇:python pandas中DataFrame类型数据操作函数的方法
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 归纳总结Python中的装饰器知识点• python中API调用的详解与示例• 手把手教你在Python使用plot()函数画图• 详细解析python正则表达式re模块• 一文搞定Python中pip的安装与使用
    1/1

    PHP中文网