如何从java中的单字母密码映射?

时间:2017-06-03 16:34:15

标签: java encryption mapping

  

正在实施加密类型:monoalphabetic cipher

     

例如,
  步骤1。 -   第2步。 -   第3步。 -

     

结果: -

我想像上面那样加密明文。 你是怎么做到的?

1 个答案:

答案 0 :(得分:0)

请尝试将此plainText.charAt(i) - 'a'作为密码索引

示例:

char[] cipher = "dstuvwxuzabcdefghiklmnopqr".toCharArray();

String plainText = "iloveyouz";

StringBuilder cipherText = new StringBuilder();
for (int i = 0; i < plainText.length(); i++) {
    cipherText.append(cipher[plainText.charAt(i) - 'a']);
}

System.out.println("Encrypted : " + cipherText.toString());

char[] original = new char[cipher.length];
for (int j = 0; j < original.length; j++) {
    original[cipher[j] - 'a'] = (char) ('a' + j);
}

StringBuilder decryption = new StringBuilder();

for (int i = 0; i < plainText.length(); i++) {
    decryption.append(original[cipherText.charAt(i) - 'a']);
}

System.out.println("Decrypted : " + decryption.toString());

输出:

Encrypted : zcfnvqfmr
Decrypted : iloveyouz

注意:您可以预处理original生成过程。