置換加密演算法


Submit solution

Points: 20
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

題目說明

<112程式設計競賽考題>

置換加密演算法是一種「基於金鑰進行字元位置智換」的加密演算法。 本題置換加密演算法是以四個字元為一個單位。而加密的金鑰為[2, 0, 3, 1]。 假設有一個欲加密明文為"JAVA"。加密過程如下:

  • 根據金鑰,明文中的第一個字元('J')應該移動到新位置2,第二個字元('A')移動到新位置0,第三個字元('V')移動到新位置3,第四個字元('A')移動到新位置1。
    這時字串"JAVA"已變成"AAJV"
    pc1122
  • 此外,為了讓加密更不好破解,必須將上一步驟產出的字串再予以反轉:"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

There are no comments at the moment.