Vigenère Cipher是一個用一系列的Caesar Cipher來加密文字的演算機制;根據一個設定好的keyword,可以透過以下的表格來進行文字的加密以及解密
(Excerpted from wiki: https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher)
舉例:
如果加密過後的文字為LXFOPVEFRNHR,且使用的keyword是LEMON,透過以下步驟可以將文字解密:
先將keyword的長度複製對應到加密文字的長度
將加密文字與對應到的keyword進行解密
解密後即可得出原始未加密的文字
Ciphertext: LXFOPVEFRNHR
Keyword: LEMONLEMONLE
Plaintext: ATTACKATDAWN
給定一個keyword字串,和一個加密過後的text字串;請試著找出原始未加密的文字字串為何
給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:vigenereDecrypt()
Methods:
- void vigenereDecrypt(int text_length, char *textPtr, char keyword[25]) – 將傳入參數textLength(text字串的長度)、 textPtr(text字串的第一個位址的指標)和 keyword ; 找出原始未加密的字串
hint:
可以透過textPtr++來取得下一個元素,並對其修改
function.c
兩個字串 keyword, text,分別代表加密時所需要的keyword和加密過後的字串
Note:
keyword和text只包含大寫的英文字母
1 <= keyword字串的長度 <= 24;1 <= text字串的長度 <= 600
無需處理輸入
輸出比須符合以下格式:
PT
Note:
無需處理輸出