㈠ python編寫凱撒密碼!!!求大神幫助!!!
exec('moveLength = int(raw_input("Input raw_input amount, expect a int number"))\nprint "".join([dict(zip(list("abcdefghijklmnopqrstuvwxyz"), [list("abcdefghijklmnopqrstuvwxyz")[(i + moveLength) % 26] for i in range(26)]))[x] for x in list(raw_input("String to change:"))])')
樓主分沒給夠, 所以只能看到這樣的代碼嘍……o((≧▽≦o) ......
㈡ python編程 凱撒密碼
我覺得是因為你那句if, 'Z'的ascii碼(十進制)為90, 而 'z'對應的為122。語句判斷如果輸入的字元串的值+前面寫的值大於'Z'(90)並且大於'z'(122),也就是說得到的值必須大於122才進行之後的-26的操作,由於90+5<122 所以沒有執行-26 得到的就是95 即'_'這個字元。希望可以幫助到你,望採納。
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:
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"您的輸入有誤!")
㈣ 如何用python編寫凱撒密碼
凱撒密碼是對字母表整體進行偏移的一種變換加密。因此,建立一個字母表,對明文中每個字母,在這個字母表中偏移固定的長度即可得到對應的密文字母。
最基本的實現如下:
defcaesarcipher(s:str,rot:int=3)->str:
_='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
encode=''
i=0
forcins:
try:
encode+=_[(_.index(c.upper())+rot)%len(_)]
except(Exception,)ase:
encode+=c
returnencode
print(caesarcipher('hellow'))
print(caesarcipher('KHOORZ',-3))
如果要求解密後保持大小寫,那麼,字母表_還需要包含所有小寫字母並且index時不對c做upper處理.
同樣的,也可以在字母表中追加數字,各種符號,空格等.
㈤ 用Python語言從文件夾中提取文件進行凱撒加密
import string
def kaisa(s, k): #定義函數 接受一個字元串s 和 一個偏移量k
lower = string.ascii_lowercase #小寫字母
upper = string.ascii_uppercase #大寫字母
before = string.ascii_letters #無偏移的字母順序 小寫+大寫
after = lower[k:] + lower[:k] + upper[k:] + upper[:k] #偏移後的字母順序 還是小寫+大寫
#分別把小寫字母和大寫字母偏移後再加到一起
table = ''.maketrans(before, after) #創建映射表
return s.translate(table) #對s進行偏移 即加密
s = input('請輸入一個字元串:')
k = int(input('請輸入一個整數密鑰:'))
print(kaisa(s, k))
調用此函數
㈥ python凱撒密碼實現
#codinng=utf-8
x='abcdefghijklmnopqrstuvwxyz'.split('')
y='nopqrstuvwxyzabcdefghijklm'.split('')
X=map(lambdax:x.upper(),x)
Y=map(lambdax:x.upper(),y)
dict_kaisa=dict(zip(x+X,y+Y))#創建一個字典,鍵為原字元串,值為加密字元串
#定義凱撒加密函數,輸入字元串,輸出凱撒加密後字元串
defkaisa(string):
result=[]
foriinrange(len(string)):
ifstring[i]indict_kaisa.keys():
result.append(dict_kaisa[string[i]])
else:
result.append(string[i])
return''.join(result)
print(kaisa('TheZenofPython'))#結果為GurMrabsClguba
㈦ 求python中的愷撒密碼的加密,解密,以及破解的程序
凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成A,Y變成B,Z變成C。由此可見,位數就是凱撒密碼加密和解密的密鑰。
如下代碼是以偏移量為13展開計算的。123
源代碼如下:
sr1="abcdefghijklmnopqrstuvwxyz"sr2=sr1.upper()
sr=sr1+sr1+sr2+sr2
st="The Zen of Python"sResult=""for j in st: if j==" ":
sResult = sResult +" "
continue
i=sr.find(j) if(i>-1):
sResult=sResult+sr[i+13]print sResult12345678910111213
運行結果為:
Gur Mra bs Clguba
㈧ 怎麼用Python編輯出此凱撒密碼的解密密碼
凱撒密碼的加密密鑰與解密密鑰是相反數,因此,k給相反數即可:
kaisa(kaisa(s, 3), -3)
㈨ 求python 凱撒密碼 加碼和解碼
輸入:CAT
輸出:DBU
importstring
defcaesar_shift(s):
#Writeyourcodehere
#
#Example:print"Helloworld!"
table=string.maketrans(string.ascii_uppercase,string.ascii_uppercase[1:]+string.ascii_uppercase[:1])#1表示加密時右移1位
prints.translate(table)
caesar_shift("CAT")
str.maketrans()是創建一個字元翻譯表,而str.translate()就是根據這個翻譯表,翻譯這個字元串。(比按asc碼求模更簡潔)
string.translate(table [, deletechars])
string.maketrans(intab, outtal)
如果解決了您的問題請採納!
如果未解決請繼續追問