python凱撒密碼實現(xiàn) 如何用python編寫凱撒密碼 ?
# codinng=utf-8
x = 'a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' ')
y = 'n o p q r s t u v w x y z a b c d e f g h i j k l m'.split(' ')
X = map(lambda x: x.upper(), x)
Y = map(lambda x: x.upper(), y)
dict_kaisa = dict(zip(x + X, y + Y)) # 創(chuàng)建一個字典, 鍵為原字符串, 值為加密字符串
# 定義凱撒加密函數(shù), 輸入字符串, 輸出凱撒加密后字符串
def kaisa(string):
result = []
for i in range(len(string)):
if string[i] in dict_kaisa.keys():
result.append(dict_kaisa[string[i]])
else:
result.append(string[i])
return ''.join(result)
print(kaisa('The Zen of Python')) # 結(jié)果為Gur Mra bs Clguba
def main():
st = input()
sr1="abcdefghijklmnopqrstuvwxyz"
sr2=sr1.upper()
sr=sr1+sr1+sr2+sr2
sResult=""
for j in st:
if j==" ":
sResult = sResult +" "
continue
i=sr.find(j)
if(i>-1):
sResult=sResult+sr[i+13]
print(sResult)
main()
但是檢查了下發(fā)現(xiàn) 字符并沒有按原字符輸出而是直接舍棄,請讓我再花時間修改一下
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 24 21:05:57 2017
@author:
"""
x='a b c d e f g h i j k l m n o p q r s t u v w x y z'.split(' ')
y='n o p q r s t u v w x y z a b c d e f g h i j k l m'.split(' ')
#X=map(lambda x:x.upper(),x)
X='A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'.split(' ')
#Y=map(lambda x:x.upper(),y)
Y='N O P Q R S T U V W X Y Z A B C D E F G H I J K L M'.split(' ')
kaisa=dict(zip(x+X,y+Y))
def fun(s):
ans=[]
for i in range(len(s)):
if s[i] in kaisa.keys():
ans.append(kaisa[s[i]])
else:
ans.append(s[i])
return ''.join(ans)
input_s=input()
input_l=list(input_s)
ll=len(input_l)
result=[]
for i in range(ll):
result.append(fun(input_l[i]))
print(''.join(result))
python字符串凱撒密碼加密編寫注意事項?
Python 字符串凱撒密碼加密編寫的注意事項如下:總之,在編寫 Python 字符串凱撒密碼加密程序時,需要考慮到各種情況,并使用合適的數(shù)據(jù)類型和函數(shù)進行處理。確定加密規(guī)則:凱撒密碼加密是通過將明文中的每個字符按照一定規(guī)則進行移位來實現(xiàn)的。在編寫程序之前,需要確定移位的規(guī)則,例如移位的位數(shù)、移位的方向等...
求python中的愷撒密碼的加密,解密,以及破解的程序
凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經(jīng)很流行,他的基本思想是:通過把字母移動一定的位數(shù)來實現(xiàn)加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一個固定數(shù)目進行偏移后被替換成密文。例如,當(dāng)偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推X將變成...
Python 程序編程問題,凱撒密碼
class Caesar: def __init__(self): a = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ,.-!\\'"') b = a[3:] + a[:3] self.emap = dict(zip(a,b)) self.dmap = dict(zip(b,a)) def encode(self, text): tmp = [ (x in self.emap an...
python編程 凱撒密碼
我覺得是因為你那句if, 'Z'的ascii碼(十進制)為90, 而 'z'對應(yīng)的為122。語句判斷如果輸入的字符串的值+前面寫的值大于'Z'(90)并且大于'z'(122),也就是說得到的值必須大于122才進行之后的-26的操作,由于90+5<122 所以沒有執(zhí)行-26 得到的就是95 即'_'這個字符。希望可以幫助到你,望...
Python密碼學(xué)入門:凱撒密碼
通過數(shù)學(xué)計算也可以實現(xiàn)加密和解密。字母表中的字母對應(yīng)數(shù)字,進行加法和減法運算即可。例如,使用密鑰13加密“HELLO. HOW ARE YOU?”得到“URYYB. UBJ NER LBH?”。逆向操作進行解密。《Python密碼學(xué)編程 第2版》將教授使用Python編程制作和破解密碼。讀者將從使用反向和凱撒密碼的程序開始,了解公鑰加密...
怎么用Python編輯出此凱撒密碼的解密密碼?
凱撒密碼的加密密鑰與解密密鑰是相反數(shù),因此,k給相反數(shù)即可:kaisa(kaisa(s, 3), -3)
Python凱撒密碼,若向后移動N位,怎么修改?
def caesar_code(n, plain_text) -> str:plain_text = str.upper(plain_text)alphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'mapping = dict((char, i) for i, char in enumerate(alphabets))encrypted = []for token in plain_text.split():for char in token:encrypted.append(alphabets[(mapping[...
凱撒密碼 求編程。語言不限。
\/ 同學(xué),ACM題目得自己做啊.這種絕對屬于簡單題啊.同學(xué),加油啊.\/ include<stdio.h> include<ctype.h> define maxlen 100 char *KaisaEncode(char *str,int key){\/\/加密 int i;int ch;for(i=0;str[i]!='\\0';i++){ ch=str[i];if(isupper(ch))ch=(ch-'A'+key+26)%26+'A';el...
python語言凱撒密碼加密為什么要%26?
凱撒密碼確實是一種古老的加密方法,它最早可以追溯到公元前前世紀,使用這種密碼時,每個字母在字母表中向后移動固定位置。在計算機和ASCII碼出現(xiàn)之前,字母表中的字符數(shù)量是有限的,通常只有26個字母。即使現(xiàn)在使用Unicode碼,為了保持與原有字母表的一致性,通常依然保持26個字母的限制。使用%26的原因在于...
Python編程-翻譯密碼?
區(qū)分大小寫的凱撒密碼。在凱撒密碼的基礎(chǔ)上針對大寫與小字字符區(qū)分處理即可:解密只需要將7換成19(因為26-7=19),或者使用-7也可以:print(caesarcipher(caesarcipher('Student!', 7),19))
相關(guān)評說:
澤庫縣轉(zhuǎn)動: ______ 上一行的print后面是一個空格,刪除掉
澤庫縣轉(zhuǎn)動: ______ 用下面程序:新建個txt,放進去任意單詞,設(shè)置#define N 5 中的值,實現(xiàn)字母移位,達到加密目的. 本程序提供解密功能 /************************************************************************/ /* 版權(quán)所有:信息工程學(xué)院 王明 使用時請注明出處!! ...
澤庫縣轉(zhuǎn)動: ______ 題目1 if __name__ == '__main__': number = input("Please input a number:") number = int(number) i = 1 sum = 0 output = "" while i
澤庫縣轉(zhuǎn)動: ______ 所說所有的變量都是對象. 對象在python里,其實是一個指針,指向一個數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)里有屬性,有方法.對象通常就是指變量.從面向?qū)ο驩O的概念來講,對象是類的一個實例.在python里很簡單,對象就是變量.class A:myname="class a" 上面就是一個類.不是對象 a=A() 這里變量a就是一個對象.它有一個屬性(類屬性),myname,你可以顯示出來 print a.myname 所以,你看到一個變量后面跟點一個小數(shù)點.那么小數(shù)點后面
澤庫縣轉(zhuǎn)動: ______ 輸入臺控制類 import java.util.Scanner; public class Swither { public static void main(String[] args) { Scanner input=new Scanner(System.in); Encryption en=new Encryption(); Decryption de=new Decryption(); System.out.println("************歡迎...
澤庫縣轉(zhuǎn)動: ______ 著名的凱撒加密算法就是一種簡單的替代加密法,它是將明文中每一個字符用右移3位并以26個字符為模的替代(A由D替代,B由E替代,··…—,W由Z替代,X由A替代,Y由B替代,Z由C替代). 所以你的匯編很簡單呀,按1的時候,你用一個寄存器指向明文,然后對寄存器指向的數(shù)據(jù)做加3,然后mod26的處理,解密是按2的時候,你用一個寄存器指向密文,然后然后對寄存器指向的數(shù)據(jù)做減3,然后mod26的處理.
澤庫縣轉(zhuǎn)動: ______ 加密有多種算法,不知道你需要什么樣的,下面是凱撒密碼的例子,參考下吧 /** * 該程序即可加密又可以解密,解密時在密鑰上加入-號即可 * * @param args * args[0]:加密字符串 args[1]:密鑰 */ public static void main(String[] args) { ...