置換加密演算法
題目說明
<112程式設計競賽考題>
置換加密演算法是一種「基於金鑰進行字元位置智換」的加密演算法。 本題置換加密演算法是以四個字元為一個單位。而加密的金鑰為[2, 0, 3, 1]。 假設有一個欲加密明文為"JAVA"。加密過程如下:
- 根據金鑰,明文中的第一個字元('J')應該移動到新位置2,第二個字元('A')移動到新位置0,第三個字元('V')移動到新位置3,第四個字元('A')移動到新位置1。
這時字串"JAVA"已變成"AAJV"
- 此外,為了讓加密更不好破解,必須將上一步驟產出的字串再予以反轉:"AAJV" => "VJAA"。
- 當字串不是4的倍數時,請補上特殊字元#,讓字串長度成為4的倍數,然後以4個字元為一單位進行置換加密演算法。如"JAVA123"字串將補上特殊字元#:"JAVA123#",透過金鑰置換後為"AAJV"+"2#13"、再予以反轉"VJAA"+"31#2",最後密文為"VJAA31#2"
輸入
輸入一行不限制字數的明文文字(僅包含英文大小寫、數字、及 「-」、「.」、「_」3個字元)
輸出
輸出密文
sample input & output
輸入 | 輸出 | |
---|---|---|
樣本1 | COVID-19 | VCIO1D9- |
樣本2 | S.y.s.t.e.m | yS..ts..me#. |
樣本3 | test_123_test_123. | stte2_31e_st1t2_#3#. |
Comments