python 破譯密碼

2021-09-10 18:58:35 字數 1238 閱讀 2746

題目內容:

a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法:將明文電報(僅由大寫字母構成)中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcfm。

可還沒等到間諜說出加密用的金鑰(數字n),就被臥底開槍打死,間諜臨死前在地板上畫了bye三個字母。

情報局長看著一條條密電發了愁,但機智的你已經發現,原來間諜在告訴我們,所有密電的明文都以bye結尾!

請編寫程式破譯這些密電吧!

輸入格式:

共一行字串,全部由大寫字母構成的密文。

輸出格式:

共一行字串,破譯後的明文。

輸入樣例1:

jntqzczf

輸出樣例1:

imspybye

時間限制:500ms記憶體限制:32000kb

程式1:

s=input()

a='abcdefghijklmnopqrstuvwxyz'

for n in range(26): #窮舉金鑰n

secret=a[n:]+a[:n] #金鑰n對應的密碼表

if a[secret.index(s[-1])]=='e':

for t in s: #破解得到明文

print(a[secret.index(t)],end='')

print()

break

程式2:

s=input()

a='abcdefghijklmnopqrstuvwxyz'

#直接求出金鑰n

n = a.index(s[-1])-a.index('e')

#解密計算明文

for t in s:

print(a[(a.index(t)-n) % 26],end='')

程式3:

m = input()

for i in range(1,26):

s =

for j in m:

newstr = ''.join(s)

if 'bye' in newstr:

print(newstr)

python 實戰41 破譯密碼

題目內容 a國情報局抓獲敵國間諜一名,從間諜身上搜出了若干密電,在嚴刑逼供之下,間諜說出了密電加密方法 將明文電報 僅由大寫字母構成 中的所有字母均替換為字母表中向後看的第n個字母,如果超過z,則從a繼續數,這樣就得到了密文,比如attack,向後看第2個字母,就加密為cvvcem。可還沒等到間諜說...

簡單密碼破譯

problem description 密碼是我們生活中非常重要的東東,我們的那麼一點不能說的秘密就全靠它了。哇哈哈.接下來淵子要在密碼之上再加一套密碼,雖然簡單但也安全。假設淵子原來乙個bbs上的密碼為zvbo941987,為了方便記憶,他通過一種演算法把這個密碼變換成yuanzi1987,這個密...

3977 密碼破譯

快速判斷長度為 x 的串是不是迴圈節,只需要判斷 len x 的串是否為區間的border。雜湊處理。注意到如果 x 不是迴圈節,則它的因數都不會是迴圈節。所以可以列舉 x 的質因子,長度除以質因子之後判斷是不是,直到不是迴圈節為止,這樣就可以得知最短迴圈節的這個質因子的指數。using names...