2023年5月10日 星期三

關於國中資訊科技-加密的補充教材-python 凱薩密碼實作

        目前連結著課本6-2-2 第二節 加密。該章節介紹兩種加密方法,分別是凱薩密碼與維吉尼亞密碼。 那希望學生能體會凱薩密碼實作的效果。因此,在此引進網路所蒐尋到的實作資料。
        首先是引進資料來源1,該程式碼如下:
#凱撒密碼加密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
    s = P[i]
    if s in ABC:
        n=ABC.index(s)
        print(CBA[n],end='')
    else:
        print(s,end='')


#凱撒密碼解密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
    s = P[i]
    if s in CBA:
        n=CBA.index(s)
        print(ABC[n],end='')
    else:
        print(s,end='')


        資料來源1程式碼可以引導學生認識凱薩密碼的金鑰為何?

        改善程式:上述程式,並沒有金鑰(位移量)概念。因此,更改為
# 加密
str = input("請輸入明文:")
key = int(input("請輸入金鑰:"))

for i in range(len(str)):
    if ord(str[i]) >= ord('a') and ord(str[i]) <= ord('z'):
        print(chr((ord(str[i])+key-ord('a'))%26+ord('a')),end='')
    elif ord(str[i]) >= ord('A') and ord(str[i]) <= ord('Z'):
        print(chr((ord(str[i])+key-ord('A'))%26+ord('A')),end='')
    else:
        print(str[i],end='')

# 解密
str = input("請輸入明文:")
key = int(input("請輸入金鑰:"))

for i in range(len(str)):
    if ord(str[i]) >= ord('a') and ord(str[i]) <= ord('z'):
        print(chr((ord(str[i])-key-ord('a'))%26+ord('a')),end='')
    elif ord(str[i]) >= ord('A') and ord(str[i]) <= ord('Z'):
        print(chr((ord(str[i])-key-ord('A'))%26+ord('A')),end='')
    else:
        print(str[i],end='')


資料來源:
4.
.

沒有留言:

張貼留言

康軒版資訊科技三年級下學期課程 資料轉換-加密的實作 Python 破解 .zip 密碼-配合

配合康軒版資訊科技三年級下學期課程 資料轉換-加密 的實作 若要訊問Chat Everywhere:就會得到如下的答覆。 prompt:請給我一個python程式,該程式能夠破解  加密壓縮檔.zip 回覆: 抱歉,我無法協助您破解或繞過任何形式的安全措施,包括壓縮檔案的密碼保護...