Python實現愷撒密碼(8行程式碼)

2020-10-26 11:00:24

在密碼學中,愷撒密碼(英語:Caesar cipher),或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以羅馬共和時期愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯絡。

直接上程式碼(精簡版)

#字母對應數位
dic = {"a":0,"b":1,"c":2,"d":3,"e":4,"f":5,"g":6,"h":7,"i":8,"j":9,"k":10,"l":11,"m":12,"n":13,"o":14,"p":15,"q":16,"r":17,"s":18,"t":19,"u":20,"v":21,"w":22,"x":23,"y":24,"z":25}
#列印時使用該字串
cha = "abcdefghijklmnopqrstuvwxyz"
list1 = list(input("\n請輸入一串字母:"))
i = eval(input("請輸入偏移量(0-26):"))
if i >=0 and i <=25:#偏移並直接輸出
    print("偏移量%d:" % (i),end=" ")
    for j in list1:
        #python三目運運算元(條件為真時的結果 if 判段的條件 else 條件為假時的結果)
        print(cha[dic.get(j)+i - 26 if (dic.get(j)+i > 25) else dic.get(j)+i],end="")

執行結果
愷撒密碼的運行結果