最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

盡管是最簡單的加密技術,但那該怎么在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()        #將輸入的模式進行變換(從大寫變小寫,小寫部分不變)
  if mode in 'encrypt e decrypt d q'.split():     #當模式是被要求的encrypt e(加密模式)decrypt d(解密模式) q(退出)時進行下一步操作
   #print(mode)           #打印輸入的模式
   return mode            #將mode的值作為返回值
  else:
   print('Please input right option!!')     #輸出提示


def getKey(mode):
 key = 0               #設置默認的key
 while key <= 0 or key >= 26:         #限制key的范圍在(1-25以內的數(shù))
  try:              #這里進行異常處理,將非整數(shù)類型的輸入進行錯誤提示打印
   key = int(input("Please input your key:(1-26)"))
  except:
   print("Please input correct number!!")
 #對解密的密匙進行變換
 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 = ''             #設置輸出的初始值
 for x in informetion:           #將輸入信息里的進行逐一字母加密/解密
  num = ord(x)            #將單一字符通過ascii表進行轉換,將字母轉換為數(shù)字
  num += key             #加上key的值進行下列運算
  if x.isupper():            #判斷是否是大寫字母
   if num > ord('Z'):          #對超出ascii對應數(shù)值的范圍進行處理
    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表進行轉換,將數(shù)字轉換為字母
 return message             #返回message的值
  
if __name__=="__main__":           #主程序
 mode = ask()             #將ask()返回值存于mode變量中
 if mode == 'q':             #進行退出判斷
  print('welcome!!')
 else:
  key = getKey(mode)            #將mode變量的值帶入getKey函數(shù)中運行,運行后將key的值存入到key變量中
  last = getMessage(key)          #將key變量的值帶入到getMessage函數(shù)中,運行后將message的值存入到last變量中
  print(last) 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 粗略分析Python中的內存泄漏

    粗略分析Python中的內存泄漏

    這篇文章主要介紹了粗略分析Python中的內存泄漏,分析了包括在垃圾回收時產生等的原因,需要的朋友可以參考下
    2015-04-04
  • 使用pandas讀取csv文件的指定列方法

    使用pandas讀取csv文件的指定列方法

    下面小編就為大家分享一篇使用pandas讀取csv文件的指定列方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python一行代碼實現(xiàn)ChatGPT接入微信機器人

    Python一行代碼實現(xiàn)ChatGPT接入微信機器人

    這篇文章主要為大家介紹了Python一行代碼實現(xiàn)ChatGPT接入微信機器人示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式

    Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式

    這篇文章主要介紹了Django-xadmin后臺導入json數(shù)據(jù)及后臺顯示信息圖標和主題更改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python中else的三種使用場景

    Python中else的三種使用場景

    在Python中else最常見的用法就是用在判斷語句中,其實還可以用在循環(huán)語句和異常處理中。 下面來總結一下else的用法:
    2021-06-06
  • Python進行密碼學反向密碼教程

    Python進行密碼學反向密碼教程

    這篇文章主要為大家介紹了Python進行密碼學反向密碼的教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python中enumerate的用法實例解析

    python中enumerate的用法實例解析

    這篇文章主要介紹了python中enumerate的用法,對Python初學者而言是非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • Python實現(xiàn)自動識別數(shù)字驗證碼

    Python實現(xiàn)自動識別數(shù)字驗證碼

    這篇文章主要為大家詳細介紹了如何使用Python來自動識別數(shù)字驗證碼,以便在需要時自動填寫或驗證驗證碼,有需要的小伙伴可以參考一下
    2024-04-04
  • python解決字典中的值是列表問題的方法

    python解決字典中的值是列表問題的方法

    這篇文章主要介紹了字典中的值是列表問題,先用value連成一個str,最后用str.split()作一個轉換,生成一個列表.看了python cookbook,上面正好有一個recipe講到如何處理這樣的問題
    2013-03-03
  • CentOS系統(tǒng)Python卸載攻略大揭秘

    CentOS系統(tǒng)Python卸載攻略大揭秘

    想要徹底卸載?CentOS?上的?Python?嗎?不用擔心,我們來幫你搞定!本指南將教你如何在?CentOS?系統(tǒng)上完全清理?Python,讓你的系統(tǒng)煥然一新,跟著我們的步驟,讓你的系統(tǒng)煥然一新吧!
    2023-11-11

最新評論

九龙县| 宿州市| 吴江市| 碌曲县| 阜阳市| 桂阳县| 新闻| 洪洞县| 南召县| 三门峡市| 西和县| 昆明市| 城固县| 安龙县| 昭觉县| 梓潼县| 鄂州市| 信阳市| 永嘉县| 襄汾县| 尼木县| 桓仁| 会宁县| 霸州市| 岐山县| 新干县| 灯塔市| 庄浪县| 晋州市| 大方县| 祁门县| 舒兰市| 噶尔县| 赣州市| 千阳县| 鸡泽县| 盐源县| 广西| 大英县| 阿图什市| 恭城|