今天是我學習 Python 的第 26 天,這次的實作是將撰寫一個簡單的文字加密程式,會運用 Python 的知識技巧有字串處理、迴圈、與 ASCII 值來加密並解密訊息。雖然這樣的加密方式很簡單,但能夠讓我們更好地理解加密原理。
文字加密的一個基本方法是將每個字元的 ASCII 值進行偏移,然後再將其轉換回字元。這樣,即便輸入的訊息是相同的,加密後的結果會顯示不同內容。我們也將加入解密的功能,將加密的文字還原成原始訊息。
定義加密和解密的函式:
首先,先定義兩個函式,encrypt
和 decrypt
。encrypt
會將訊息的每個字元偏移指定的位數,並返回加密後的結果。而 decrypt
則會反向操作,將加密後的訊息還原成原本的訊息。
輸入訊息與偏移量:
程式會要求使用者輸入要加密的訊息,並設定一個數字作為加密的偏移量 (shift)。這個數字決定了每個字元的 ASCII 值將偏移多少位數。
加密操作:
在加密的過程中,我們會針對每個字元進行迴圈操作,取得其 ASCII 值,然後加上偏移量,最後再將偏移後的數字轉換回字元。
解密操作:
解密則是反向操作,將每個字元的 ASCII 值減去偏移量,再轉換回原本的字元,從而還原訊息。
輸出結果:
加密和解密的結果會在終端上顯示,使用者可以直觀地看到訊息如何從明文轉變成密文,再從密文還原成明文。
以下是完整的程式碼:
實際操作的輸出結果:
請輸入要加密的訊息: Hello, World!
請輸入加密偏移量: 3
加密後的訊息: Khoor, Zruog!
解密後的訊息: Hello, World!
加密後的訊息:
輸入的「Hello, World!」每個字母根據偏移量 3 向後移動。例如:
H 變成 K
e 變成 h
l 變成 o
o 變成 r
W 變成 Z
r 變成 u
其餘符號如逗號、空格等不變。
因此加密後顯示為「Khoor, Zruog!」。