本文實例講述了Python實現(xiàn)的凱撒密碼算法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)公司專注于東湖企業(yè)網(wǎng)站建設,響應式網(wǎng)站設計,成都商城網(wǎng)站開發(fā)。東湖網(wǎng)站建設公司,為東湖等地區(qū)提供建站服務。全流程按需定制,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務一 介紹
凱撒密碼是一種非常古老的加密方法,相傳當年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進行通信,以確保信息傳遞的安全。他的原理很簡單,說到底就是字母于字母之間的替換。下面讓我們看一個簡單的例子:“baidu”用凱撒密碼法加密后字符串變?yōu)椤癳dlgx”,它的原理是什么呢?把“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"您的輸入有誤!")