導航:首頁 > 編程語言 > python新手凱撒密碼問題

python新手凱撒密碼問題

發布時間:2022-10-11 14:08:00

『壹』 怎麼用python編輯出此凱撒密碼的解密密碼

凱撒密碼的加密密鑰與解密密鑰是相反數,因此,k給相反數即可:
kaisa(kaisa(s, 3), -3)

『貳』 求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

『叄』 關於python3凱撒密碼代碼的問題

prompt="""**************************
*CaesarCipherEncryption*
**************************
"""
print(prompt)
alphabet="abcdefghijklmnopqrstuvwxyz"
shift=5
letter_word=input("Pleaseentera5letterword:")
length=len(alphabet)
result=[]
forcinletter_word:
i=alphabet.index(c.lower())
i=(i+5)%length
result.append(alphabet[i])
result=''.join(result)
print("Encryptedword:{0}".format(result))

『肆』 jmu-python-凱撒密碼加密演算法,謝謝

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編寫凱撒密碼!!!求大神幫助!!!

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凱撒密碼實現

#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語言凱撒密碼加密為什麼要%26

%26是確保加密後的值仍然在字母表范圍內(當然為了能解密,前提條件是原文的字元也不能超過這26個字母)

為什麼要%26呢?直接用原文的Unicode值加三再轉換成字元不就可以了嗎?---

  1. 凱撒密碼應該是很古老的加密技術吧,那時候計算機都還沒出現,ASCII碼或者你說的unicode碼更不存在。所以說表示字元的就那麼26個。當然你說我可以創造一些字元啊,那也沒問題,和直接用數字也沒多少區別。但有可能保持這26個字母更能起到混淆視聽的作用,畢竟它們可能不能一眼看出是密碼。

  2. 不管在古代還是現代,增加字型檔都是有成本的,比如雕刻活字、設計字體等,能復用現有字體的話,列印傳播密文的成本就大大降低。

『捌』 python新手求助

創建一個列表把你要用來替換的字元按順序存儲進去,通過查找你輸入密碼的下標位置,把下標位置減3在下標獲取就行了

『玖』 Python 程序編程問題,凱撒密碼

classCaesar:

def__init__(self):
a=list(',.-!'"')
b=a[3:]+a[:3]
self.emap=dict(zip(a,b))
self.dmap=dict(zip(b,a))

defencode(self,text):
tmp=[(xinself.emapandself.emap[x]orx)forxintext]
return''.join(tmp)

defdecode(self,text):
tmp=[(xinself.dmapandself.dmap[x]orx)forxintext]
return''.join(tmp)

『拾』 python編程 凱撒密碼

我覺得是因為你那句if, 'Z'的ascii碼(十進制)為90, 而 'z'對應的為122。語句判斷如果輸入的字元串的值+前面寫的值大於'Z'(90)並且大於'z'(122),也就是說得到的值必須大於122才進行之後的-26的操作,由於90+5<122 所以沒有執行-26 得到的就是95 即'_'這個字元。希望可以幫助到你,望採納。

閱讀全文

與python新手凱撒密碼問題相關的資料

熱點內容
程序員和施工員哪個有前途 瀏覽:614
浙江百兆伺服器雲空間 瀏覽:827
php和html5學哪個比較好 瀏覽:388
瑜伽pdf下載地址 瀏覽:252
小花貓app改名叫什麼 瀏覽:837
編程器固件修改 瀏覽:523
沈陽技校有程序員嗎 瀏覽:300
各行app的基金有什麼不一樣嗎 瀏覽:62
python編譯器怎麼裝 瀏覽:73
新浪php筆試題 瀏覽:138
新時達伺服器如何自學習 瀏覽:27
程序中什麼命令用來輸入單字元 瀏覽:59
php是否有數據 瀏覽:141
虛擬雲伺服器是什麼意思 瀏覽:279
vb是編譯性語言嗎 瀏覽:209
json格式用什麼編譯器 瀏覽:319
word轉pdf代碼 瀏覽:802
單片機中如何編程 瀏覽:739
cad常見的快捷命令 瀏覽:625
伺服器端有什麼 瀏覽:325