有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

加密如何使Java程序对文本文档中的消息进行解密?

我想做一个程序,将解密文本文档中的加密消息。关键是字母表的数字颠倒,例如a=26,b=25,c=24等等

我已经有了加密消息的方法,但是我很难找到解密消息的方法。我想让这个过程尽可能简单,但在Java方面,我仍然是一个厚颜无耻的人


共 (1) 个答案

  1. # 1 楼答案

    Is this even possible? You could end up with a section of your string matching "242424" - how do you know what is C and what is W/Y?

    扎克提出了一个很好的观点。一种解决方案是在编码的数字之间添加去污剂。例如,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不是字母)

    如果您选择添加字符串消除器,那么添加错误处理将留给读者作为练习