Python实现的凯撒密码算法示例
本文介绍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程序设计有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













