Python實作的凱撒密碼演算法範例

不言
發布: 2018-05-05 15:32:33
原創
8944 人瀏覽過

這篇文章主要介紹了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實作求一個集合所有子集的範例

Python實作LR經典演算法

#

以上是Python實作的凱撒密碼演算法範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!