1. 程式人生 > >python版實現凱撒密碼

python版實現凱撒密碼

一 介紹

凱撒密碼是一種非常古老的加密方法,相傳當年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進行通訊,以確保資訊傳遞的安全。他的原理很簡單,說到底就是字母於字母之間的替換。下面讓我們看一個簡單的例子:“baidu”用凱撒密碼法加密後字串變為“edlgx”,它的原理是什麼呢?把“baidu”中的每一個字母按字母表順序向後移3位,所得的結果就是剛才我們所看到的密文。
二 程式碼
import os
#-*-coding:utf-8-*-
#==================================================================#
#         凱撒密碼(caesar)是最早的代換密碼,對稱密碼的一種                #
#   演算法:將每個字母用字母表中它之後的第k個字母(稱作位移值)替代            #
#==================================================================#
def encryption():
    str_raw = input("請輸入明文:")
    k = int(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 = input("請輸入密文:")
    k = int(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 = input("請選擇:")
    if choice == "1":
        encryption()
    elif choice == "2":
        decryption()
    else:
        print (u"您的輸入有誤!")
三 執行結果 1. 加密 2. 解密 請選擇:1 請輸入明文:cakin 請輸入位移值:3 加密結果為:fdnlq 1. 加密 2. 解密 請選擇:2 請輸入密文:fdnlq 請輸入位移值:3 解密結果為:cakin

相關推薦

python實現密碼

一 介紹 凱撒密碼是一種非常古老的加密方法,相傳當年凱撒大地行軍打仗時為了保證自己的命令不被敵軍知道,就使用這種特殊的方法進行通訊,以確保資訊傳遞的安全。他的原理很簡單,說到底就是字母於字母之間的替換。下面讓我們看一個簡單的例子:“baidu”用凱撒密碼法加密後字串變為“edlgx”,它的原理是什麼呢?把“

python實現密碼解密和加密

def encryption(): str_raw = input("請輸入明文:") k = int(input("請輸入位移值:")) str_change = str_raw.lower() str_list = list(str_change) str

Python實現密碼演算法及暴力破譯密碼演算法

一、凱撒加密法是什麼? 加密原理非常簡單,就是對字母表中的的每個字母,用它後面的第key個字母來代替。例如: 明文:meet me after the toga party 密文:PHHW PH

Python實現密碼的加密與解密

在密碼學中,我們把想要加密的訊息叫做明文(plain text)。把明文轉換成加密後的訊息叫做對明文加密(encrypting),明文加密後變成(cipher text)。 凱撒密碼的金鑰是1到26之間的一個數字。除非知道這個鍵(即用於加密訊息的數字),否則無

密碼加密解密--JAVA實現(基礎)

soft ring java實現 sta 想是 clas pub sof print 凱撒密碼一種代換密碼,據說凱撒是率先使用加密函的古代將領之一,因此這種加密方法被稱為愷撒密碼。凱撒密碼的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向

Python密碼和反密碼

代碼 ner 通過 sdn odi 完全 plain 密碼 http 凱撒密碼   寫出字母表的字母從A到Z的數字從0到25根據每個字母。A下面是0,B下面是1,等等,直到Z,下面為25.(有字母表中的26個字母,但我們的數字只上升到25,因為我們開始在0,而不是1):

使用js實現5種加密解密演算法(密碼、字母倒排序、單表置換、維基利亞、轉換加密演算法)

在學習作業系統的時候,我們會學到系統安全的章節,而在這一塊會有關於加密解密演算法的學習。 一共有5種常見的加密解密演算法:凱撒密碼、字母倒排序、單表置換、維基利亞、轉換加密演算法。  我使用了js實現了這5種演算法,而且做了視覺化處理、輸入輸出格式化處理,使得操作起來非常

古典密碼(密碼/維吉尼亞密碼/Play fair密碼/Hill密碼)的實現(MFC介面)

void CEn_DeDlg::random_Matrix() { int i, j; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { K[i][j]

密碼解密指令碼(python)

def casearDecrypt(ciphertext, source_char, destination_char): offset = ord(destination_char) - ord(source_char) chars = "ab

字符串操作練習:星座、密碼、99乘法表、詞頻統計預處理

千分位 不足 last 乘法表 控制 ise 精度 end for 實例:輸出12個星座符號,以反斜線分隔。 for i in range(12): print(chr(9800+i),end="/") 愷撒密碼的編碼 sr1="abcdefghij

字符串操作練習:星座、密碼、99乘法表、詞頻統計預處

姓名 orm 99乘法表 不足 log inpu 輸入 print 實例 1 實例:輸出12個星座符號,以反斜線分隔。 >>>for i in range (12): >>>print(chr(9800+i),end=" ") 2

密碼、GDP格式化輸出、99乘法表

9.png images format spa 千分位 tex article ext log 愷撒密碼的編碼 plaincode = input(‘明文:‘) print(‘密文:‘,end=‘‘) for i in plaincode: print(chr(

密碼、GDP格式化輸出、九九乘法表

技術 九九乘法表 格式 images 總量 千分位 color {} 2.4 1、愷撒密碼的編碼 string =input(‘明文:‘) print(‘密文:‘,end=‘‘) for i in string: print(chr(ord(i)+3),end=‘

密碼

tex end pla sage input proc text ext print plainText = input(‘message:‘) for d in plainText: print(chr(ord(d)+4),end=‘‘) message:

密碼學》 密碼和柵格密碼(0)

inf 分享 align alt ont 加密技術 col img center 凱撒密碼(0) 在密碼學中,愷撒密碼(英語:Caesar cipher),或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母

歷史著名密碼密碼、簡單替換密碼、Enigma)

凱撒密碼 公元前100多年凱撒發明的一種密碼,簡單來說是平移密碼,也就是將字母位置向後移動一定位數。 如原文是ABCDEFG,金鑰為3,加密後就是DEFGHIJ。 以金鑰的數字向後平移了三位,如果金鑰是5就是平移五位。 凱撒密碼最簡單的破譯方式為窮舉法(暴力破解法),一共只有26個字母,

密碼-CTF(Crypto)

題目:致敬經典 lrua{1uy3yj9l-yw9u-48j2-uuj8-36h03706y7u7} 解密 :題目的圖片是20020年的電影名為凱撒大帝,很明顯應該考慮是凱撒密碼,將a~z對應著1~26列出來,將明文對應上,可發現偏移量為6,偶數位左移,奇數位右移,程式碼實現不難,但需

[古典密碼]:Caesar cipher(密碼)

非常簡單的訊息編碼方式,僅僅是將字母后移3位,而X Y Z右移就回到A B C. 加密的話就是簡單的加三取模即可;解密就是其反過程。 C++實現如下: #include#include#includ

【leetCode】 Balanced Binary Tree python實現

原題連結 實現原理解析 該題比較簡單,主要思想是遞迴的判斷左右子樹的高度不大於1即可,注意異常處理 python程式碼實現 class Solution(object): def isBalanced(self, ro

密碼圖解

一 什麼是凱撒密碼 二 凱撒密碼的加密過程 用凱撒密碼加密,金鑰是3 三 凱撒密碼的解密過程 用凱撒密碼解密,金鑰也是3 四 暴力破解凱撒密碼 在凱撒密碼中,金鑰就是字母表平移的數字。由於字母表只有26個字母,因此加密用的金鑰只有0到25共26種(平移