某明文字符串僅由大、小寫英文字母組成,為實現(xiàn)加密,小朱依次對該明文中的每個字符進(jìn)行如下操作:
①將明文中每個字符轉(zhuǎn)換成其對應(yīng)的十進(jìn)制 ASCII 碼值;
②明文的密鑰由 0-7 這 8 個數(shù)字循環(huán)產(chǎn)生,如圖 a 所示;
③加密過程中,先將每個明文字符的十進(jìn)制 ASCII 碼值轉(zhuǎn)換成 8 位二進(jìn)制數(shù),再將每個字符對應(yīng)的密鑰轉(zhuǎn)換為 4 位二進(jìn)制數(shù),最后,將由明文字符的十進(jìn)制 ASCII 碼值轉(zhuǎn)換成的 8 位二進(jìn)制數(shù)中的左邊 4 位二進(jìn)制數(shù)和右邊 4 位二進(jìn)制數(shù),分別和由密鑰數(shù)字轉(zhuǎn)換成的 4 位二進(jìn)制數(shù)逐位進(jìn)行異或運(yùn)算:1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0。
例如:明文字符串“Programming”中字母“a”用二進(jìn)制表示是 01100001,其對應(yīng)的密鑰是數(shù)字 5,用二進(jìn)制表示是 0101,加密后結(jié)果是 00110100,如圖b所示。
④將每個字符的加密結(jié)果按行輸出,如圖c所示。請回答下列問題:
(1)輸入字符串“China”,則字符“a”加密后的結(jié)果為 0010010100100101。
(2)實現(xiàn)上述功能的 Python 代碼段如下,請在①②橫線處將代碼補(bǔ)充完整。
(3)加框處的代碼有錯誤,請修改 ______。
s=input(“輸入待加密的原文:“)
k=0;s1=“”;s2=“”
print(“加密結(jié)果為:“)
for i in range(0,len(s)):
ch=①ord(s[i])ord(s[i])
m=k
for j in range(0,4):
t1=str((ch%2+m%2)%2)
t2=②str((ch//2**4%2+m%2)%2)str((ch//2**4%2+m%2)%2)
s1=t1+s1;s2=t2+s2
ch=ch//2;m=m//2
print(s2+s1)
s1=“”;s2=“”
k=k%8+1 |
【考點(diǎn)】Python語言編程環(huán)境.
【答案】00100101;ord(s[i]);str((ch//2**4%2+m%2)%2)
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/11/22 13:30:1組卷:3引用:2難度:0.4
相似題
-
1.有如下Python程序段:
字符串s為“ab018/20c2/d101/e“時,執(zhí)行該程序段后,sum的值為( ?。?/h2>發(fā)布:2024/12/12 13:30:1組卷:2引用:1難度:0.5 -
2.由圖像如圖a所示,用以下算法記錄圖像的像素點(diǎn)分布。先將像素的顏色值進(jìn)行調(diào)整,使之成為一幅黑白圖像(如圖b所示),再將黑白圖像中像素點(diǎn)(0表示黑色,1表示白色)分布以列表形式存儲,如[2310,321,1230……]表示先有231個連續(xù)的黑色像素,再接著是32個連續(xù)的白色像素,再接著是123個連續(xù)的黑色像素……,列表中部分?jǐn)?shù)據(jù)如圖c所示。
實現(xiàn)上述功能的Python代碼如下:
(1)由程序代碼可知,對圖像的記錄方式采用
(2)若得到圖d顏色加深的圖像,則劃波浪線處代碼應(yīng)修改為
A.img[i,j]>210
B.img[i,j]>140
C.img[i,j]<140
D.img[i,j]<210
(3)在橫線處填上合適的代碼。
(4)程序加框處代碼有錯,請改正。發(fā)布:2024/12/11 21:0:1組卷:3引用:1難度:0.4 -
3.統(tǒng)計高一學(xué)生選課情況。高一學(xué)生要從物理、化學(xué)、生物、政治、歷史、地理、技術(shù)這七門科目中選擇3門作為選考科目,“1”表示已選擇科目,數(shù)據(jù)存儲在文件“xk.jye.ai”中。
(1)根據(jù)選課情況完成填充組合列(L列)。
(2)統(tǒng)計組合數(shù)量,并將選課組合人數(shù)最多的5個組合以柱形圖的方式呈現(xiàn)(如圖所示)。發(fā)布:2024/12/15 10:0:2組卷:4引用:1難度:0.4
把好題分享給你的好友吧~~