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

宋时安
宋时安
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍Python实现的凯撒密码算法,通过字母位移进行加密解密。凯撒密码原理简单,将字母按顺序后移指定位数。文章提供完整Python代码示例及运行结果,并推荐多种在线加密解密工具,包括AES、DES、MD5及SHA系列算法,供开发者参考使用。

本文分享一个使用Python编写的凯撒密码算法实例,供读者参考学习。

一 介绍

凯撒密码是一种历史悠久的加密方式。相传古罗马时期,凯撒在行军作战时为确保命令不被敌军截获,便采用这种特殊通信手段以保障信息安全。其核心原理在于字母间的替换。例如,将字符串“baidu”使用凯撒密码加密后变为“edlgx”。具体操作是将原字符串中的每个字母在字母表中向后移动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:对加密解密技术感兴趣的朋友,还可以参考本站提供的以下在线工具:

文字在线加密解密工具(支持AES、DES、RC4等算法): http://tools.jb51.net/password/txt_encode

MD5在线加密工具: http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具: http://tools.jb51.net/password/hash_encrypt

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

在线sha1/sha224/sha256/sha384/sha512加密工具: http://tools.jb51.net/password/sha_encode

更多关于Python技术内容,读者可查阅本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

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

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表