如何制作解密文本文档中的消息的Java程序?

时间:2015-02-24 03:33:24

标签: java encryption text document

我想创建一个程序来解密文本文档中的加密消息。关键是数字反转的字母表,例如a = 26,b = 25,c = 24等等。

我已经有了加密邮件的方法,但我找不到解密邮件的方法。我希望尽可能简单地保持这一点,而且对于Java来说,我仍然是一个厚颜无耻的磨砂膏。

1 个答案:

答案 0 :(得分:1)

  

这甚至可能吗?你最终会得到一个匹配“242424”的字符串部分 - 你怎么知道什么是C和什么是W / Y?

zackehh提出了一个很好的观点。一种解决方案是在编码数字之间添加分隔符。例如,242424可能会变为2,4,24,2,4,并且不会有歧义。此功能在您进行更改的前提下运行:

public String decode(String decode) {
    String[] keyArray = {"z", "y", "x", "w", "v", "u", "t", "s", "r", "q", "p", "o", "n", "m", "l", "k", "j", "i", "h", "g", "f", "e", "d", "c", "b", "a", "z"};
    String[] split = decode.split(",");

    StringBuilder decoded = new StringBuilder();
    for (String part : split) {
        int code = Integer.parseInt(part);
        decoded.append(keyArray[code - 1]);
    }

    return decoded.toString();
}

代码非常干净,但它没有任何错误处理。

非常规输入会出现问题,例如1,2,a,3在尝试解析a时导致异常。如果传递1,2,344,则会抛出另一个例外,例如,因为344不是代码中的有效密钥(> 26不是字母)。

如果您选择沿着添加字符串分隔符的路径,添加错误处理将作为练习留给读者。