Python實現(xiàn)的凱撒密碼算法示例
本文實例講述了Python實現(xiàn)的凱撒密碼算法。分享給大家供大家參考,具體如下:
一 介紹
凱撒密碼是一種非常古老的加密方法,相傳當(dāng)年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進(jìn)行通信,以確保信息傳遞的安全。他的原理很簡單,說到底就是字母于字母之間的替換。下面讓我們看一個簡單的例子:“baidu”用凱撒密碼法加密后字符串變?yōu)椤癳dlgx”,它的原理是什么呢?把“baidu”中的每一個字母按字母表順序向后移3位,所得的結(jié)果就是剛才我們所看到的密文。
二 代碼
# -*- 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 ("加密結(jié)果為:"+"".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 ("解密結(jié)果為:"+"".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"您的輸入有誤!")
三 運(yùn)行結(jié)果

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含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
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
在Mac OS上搭建Python的開發(fā)環(huán)境
這篇文章主要介紹了在Mac OS上搭建Apache服務(wù)器和Python解釋器的開發(fā)環(huán)境,雖然Mac OS上自帶Python但往往難以滿足開發(fā)者對版本的需求,需要的朋友可以參考下2015-12-12
提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)
這篇文章主要介紹了提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
Python使用Matplotlib繪制三維散點(diǎn)圖詳解流程
matplotlib是基建立在python之上,適用于創(chuàng)建靜態(tài),動畫和交互式可視化,通常與數(shù)據(jù)分析模塊pandas搭配使用,用于數(shù)據(jù)的分析和展示,適用于主流的操作系統(tǒng),如Linux、Win、Mac2022-11-11
Pandas實現(xiàn)一列數(shù)據(jù)分隔為兩列
這篇文章主要介紹了Pandas實現(xiàn)一列數(shù)據(jù)分隔為兩列,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python hashlib庫數(shù)據(jù)安全加密必備指南
這篇文章主要為大家介紹了Python hashlib庫數(shù)據(jù)安全加密的使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

