這篇文章主要介紹了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實作的凱撒密碼演算法範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!