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

Python實(shí)現(xiàn)的凱撒密碼算法示例

 更新時(shí)間:2018年04月12日 09:24:27   作者:chengqiuming  
這篇文章主要介紹了Python實(shí)現(xiàn)的凱撒密碼算法,簡(jiǎn)單介紹了凱撒密碼的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)凱撒密碼算法的相關(guān)定義與使用操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)的凱撒密碼算法。分享給大家供大家參考,具體如下:

一 介紹

凱撒密碼是一種非常古老的加密方法,相傳當(dāng)年凱撒大地行軍打仗時(shí)為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進(jìn)行通信,以確保信息傳遞的安全。他的原理很簡(jiǎn)單,說(shuō)到底就是字母于字母之間的替換。下面讓我們看一個(gè)簡(jiǎn)單的例子:“baidu”用凱撒密碼法加密后字符串變?yōu)椤癳dlgx”,它的原理是什么呢?把“baidu”中的每一個(gè)字母按字母表順序向后移3位,所得的結(jié)果就是剛才我們所看到的密文。

二 代碼

# -*- coding:utf-8 -*-
import os
#==================================================================#
#     凱撒密碼(caesar)是最早的代換密碼,對(duì)稱密碼的一種        #
#  算法:將每個(gè)字母用字母表中它之后的第k個(gè)字母(稱作位移值)替代      #
#==================================================================#
def encryption():
  str_raw = raw_input("請(qǐng)輸入明文:")
  k = int(raw_input("請(qǐng)輸入位移值:"))
  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("請(qǐng)輸入密文:")
  k = int(raw_input("請(qǐng)輸入位移值:"))
  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("請(qǐng)選擇:")
  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文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python 多線程重啟方法

    python 多線程重啟方法

    今天小編就為大家分享一篇python 多線程重啟方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 在Mac OS上搭建Python的開(kāi)發(fā)環(huán)境

    在Mac OS上搭建Python的開(kāi)發(fā)環(huán)境

    這篇文章主要介紹了在Mac OS上搭建Apache服務(wù)器和Python解釋器的開(kāi)發(fā)環(huán)境,雖然Mac OS上自帶Python但往往難以滿足開(kāi)發(fā)者對(duì)版本的需求,需要的朋友可以參考下
    2015-12-12
  • 提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)

    提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)

    這篇文章主要介紹了提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 深入探索Python解碼神器Chardet自動(dòng)檢測(cè)文本編碼

    深入探索Python解碼神器Chardet自動(dòng)檢測(cè)文本編碼

    Chardet,洞察編碼的清晰水晶球,一個(gè)讓你與編碼不再“失聯(lián)”的神器,本文帶大家走近這個(gè)隱藏在Python工具箱中的小寶貝,探索它的秘密
    2024-01-01
  • Python使用Matplotlib繪制三維散點(diǎn)圖詳解流程

    Python使用Matplotlib繪制三維散點(diǎn)圖詳解流程

    matplotlib是基建立在python之上,適用于創(chuàng)建靜態(tài),動(dòng)畫和交互式可視化,通常與數(shù)據(jù)分析模塊pandas搭配使用,用于數(shù)據(jù)的分析和展示,適用于主流的操作系統(tǒng),如Linux、Win、Mac
    2022-11-11
  • Python處理unicode字符的方法詳解

    Python處理unicode字符的方法詳解

    這篇文章主要介紹了Python處理unicode字符的方法詳解,unicodedata中定義了所有Unicode字符的字符屬性,主要包含兩個(gè)功能,其一是根據(jù)名字查找字符;其二是給定字符查找其對(duì)應(yīng)的信息,需要的朋友可以參考下
    2023-08-08
  • 使用Python處理大文件的讀取的方法小結(jié)

    使用Python處理大文件的讀取的方法小結(jié)

    在日常的開(kāi)發(fā)工作中,我們經(jīng)常會(huì)遇到處理大文件的需求,無(wú)論是讀取日志文件、處理數(shù)據(jù)集,還是分析超大文本文件,大文件操作都是一個(gè)非常常見(jiàn)的挑戰(zhàn),本文將詳細(xì)介紹如何使用 Python 處理大文件的讀取,介紹幾種常用的技術(shù),需要的朋友可以參考下
    2024-11-11
  • python實(shí)現(xiàn)圖書館借閱系統(tǒng)

    python實(shí)現(xiàn)圖書館借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Pandas實(shí)現(xiàn)一列數(shù)據(jù)分隔為兩列

    Pandas實(shí)現(xiàn)一列數(shù)據(jù)分隔為兩列

    這篇文章主要介紹了Pandas實(shí)現(xiàn)一列數(shù)據(jù)分隔為兩列,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python hashlib庫(kù)數(shù)據(jù)安全加密必備指南

    Python hashlib庫(kù)數(shù)據(jù)安全加密必備指南

    這篇文章主要為大家介紹了Python hashlib庫(kù)數(shù)據(jù)安全加密的使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論

大埔区| 钦州市| 陇西县| 琼结县| 宜丰县| 融水| 菏泽市| 寻甸| 德兴市| 五家渠市| 田阳县| 孝义市| 光泽县| 宁强县| 怀柔区| 肇源县| 天长市| 田阳县| 阳朔县| 三穗县| 河北省| 怀柔区| 宜兴市| 阿尔山市| 克什克腾旗| 太仆寺旗| 城市| 托里县| 揭东县| 福泉市| 屏南县| 通河县| 汾西县| 西和县| 林州市| 页游| 信宜市| 同江市| 巴塘县| 陈巴尔虎旗| 许昌市|