欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)凱撒密碼

 更新時間:2021年04月16日 09:01:56   作者:fadeless_3  
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)凱撒密碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

在密碼學(xué)中,凱撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術(shù)。它是一種替換加密的技術(shù)。這個加密方法是以愷撒的名字命名的,當(dāng)年愷撒曾用此方法與其將軍們進(jìn)行聯(lián)系。愷撒密碼通常被作為其他更復(fù)雜的加密方法中的一個步驟,例如維吉尼亞密碼。愷撒密碼還在現(xiàn)代的ROT13系統(tǒng)中被應(yīng)用。但是和所有的利用字母表進(jìn)行替換的加密技術(shù)一樣,愷撒密碼非常容易被破解,而且在實際應(yīng)用中也無法保證通信安全。

盡管是最簡單的加密技術(shù),但那該怎么在python中如何現(xiàn)實呢?

代碼如下:

def ask():
 while True:
  print("Welcome to you coming!")
  print("you can choose mode : encrypt(e) or decrypt(d)")  #有解密和加密模式
  print("If you choose encrypt ,you can lock the message!") #加密提示
  print("If you choose decrypt ,you can unlock the message!") #解密提示
  print("If you wanna exit , input 'q'!!")     #退出提示
  mode = input("choose:").lower()        #將輸入的模式進(jìn)行變換(從大寫變小寫,小寫部分不變)
  if mode in 'encrypt e decrypt d q'.split():     #當(dāng)模式是被要求的encrypt e(加密模式)decrypt d(解密模式) q(退出)時進(jìn)行下一步操作
   #print(mode)           #打印輸入的模式
   return mode            #將mode的值作為返回值
  else:
   print('Please input right option!!')     #輸出提示


def getKey(mode):
 key = 0               #設(shè)置默認(rèn)的key
 while key <= 0 or key >= 26:         #限制key的范圍在(1-25以內(nèi)的數(shù))
  try:              #這里進(jìn)行異常處理,將非整數(shù)類型的輸入進(jìn)行錯誤提示打印
   key = int(input("Please input your key:(1-26)"))
  except:
   print("Please input correct number!!")
 #對解密的密匙進(jìn)行變換
 if mode == 'd' or mode == 'decrypt':
  key = -key
 return key

def getMessage(key):
 #輸入信息
 while True:
  informetion = input("Please input message!!")    #輸入要解密或者加密的信息
  if informetion.isalpha():         #判斷輸入的字符串是否為純字母
   break
  else:
   print("Please input continuous character!!!")   #輸錯提示
 message = ''             #設(shè)置輸出的初始值
 for x in informetion:           #將輸入信息里的進(jìn)行逐一字母加密/解密
  num = ord(x)            #將單一字符通過ascii表進(jìn)行轉(zhuǎn)換,將字母轉(zhuǎn)換為數(shù)字
  num += key             #加上key的值進(jìn)行下列運算
  if x.isupper():            #判斷是否是大寫字母
   if num > ord('Z'):          #對超出ascii對應(yīng)數(shù)值的范圍進(jìn)行處理
    num -=26
    print(message)
   elif num < ord('A'):
    num +=26
    print(message)
  elif x.islower():           #判斷是否小寫字母
   if num > ord('z'):
    num -=26
   elif num < ord('a'):
    num +=26
  message += chr(num)           #將單一字符通過ascii表進(jìn)行轉(zhuǎn)換,將數(shù)字轉(zhuǎn)換為字母
 return message             #返回message的值
  
if __name__=="__main__":           #主程序
 mode = ask()             #將ask()返回值存于mode變量中
 if mode == 'q':             #進(jìn)行退出判斷
  print('welcome!!')
 else:
  key = getKey(mode)            #將mode變量的值帶入getKey函數(shù)中運行,運行后將key的值存入到key變量中
  last = getMessage(key)          #將key變量的值帶入到getMessage函數(shù)中,運行后將message的值存入到last變量中
  print(last) 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python刪除本地夾里重復(fù)文件的方法

    python刪除本地夾里重復(fù)文件的方法

    這篇文章主要為大家詳細(xì)介紹了python刪除本地夾里重復(fù)文件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python實現(xiàn)CTC以及案例講解

    python實現(xiàn)CTC以及案例講解

    這篇文章主要介紹了python實現(xiàn)CTC以及案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序

    使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序

    這篇文章主要介紹了使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序,程序基于WebSocket,需要的朋友可以參考下
    2015-04-04
  • Python搭建FTP服務(wù)器的方法示例

    Python搭建FTP服務(wù)器的方法示例

    本篇文章主要介紹了Python搭建FTP服務(wù)器的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Pandas高級教程之Pandas中的GroupBy操作

    Pandas高級教程之Pandas中的GroupBy操作

    通常來說groupby操作可以分為三部分:分割數(shù)據(jù),應(yīng)用變換和和合并數(shù)據(jù),本文將會詳細(xì)講解Pandas中的groupby操作,感興趣的朋友一起看看吧
    2021-07-07
  • Python 實現(xiàn)訓(xùn)練集、測試集隨機劃分

    Python 實現(xiàn)訓(xùn)練集、測試集隨機劃分

    今天小編就為大家分享一篇Python 實現(xiàn)訓(xùn)練集、測試集隨機劃分,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python 腳本拉取 Docker 鏡像問題

    Python 腳本拉取 Docker 鏡像問題

    這篇文章主要介紹了 Python 腳本拉取 Docker 鏡像問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • colab中修改python版本的全過程

    colab中修改python版本的全過程

    日 對于沒有服務(wù)器的研究生來說,Colab無疑是性價比最高的GPU選擇,下面這篇文章主要給大家介紹了關(guān)于如何利用colab修改python版本的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python 基于AioHttp 異步抓取火星圖片

    python 基于AioHttp 異步抓取火星圖片

    這篇文章主要介紹了python 基于AioHttp 異步抓取火星圖片的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python使用asyncio包實現(xiàn)異步編程方式

    Python使用asyncio包實現(xiàn)異步編程方式

    這篇文章主要介紹了Python使用asyncio包實現(xiàn)異步編程方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論