V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hq2006dp
V2EX  ›  问与答

一段 java 代码求正确密钥的值<新手求助大神!!!>

  •  
  •   hq2006dp · 2015-10-19 14:54:53 +08:00 · 963 次点击
    这是一个创建于 3274 天前的主题,其中的信息可能已经有所发展或是发生改变。
    import java.io.PrintStream;
    import java.util.ArrayList;
    import java.util.Scanner;

    public class Reverse
    {
    public static void main(String[] args)
    {
    Scanner s = new Scanner(System.in);
    System.out.println("Please input the flag :");
    String str = s.next();
    System.out.println("Your input is :");
    System.out.println(str);
    char[] stringArr = str.toCharArray();
    Encrypt(stringArr);
    }

    public static void Encrypt(char[] arr) {
    ArrayList Resultlist = new ArrayList();

    for (int i = 0; i < arr.length; i++) {
    int result = arr[i] + '@' ^ 0x20;
    Resultlist.add(Integer.valueOf(result));
    }
    int[] KEY = { 180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65 };
    ArrayList KEYList = new ArrayList();
    for (int j = 0; j < KEY.length; j++) {
    KEYList.add(Integer.valueOf(KEY[j]));
    }
    System.out.println("Result:");
    if (Resultlist.equals(KEYList))
    System.out.println("Congratulations !");
    else
    System.err.println("Error !");
    }
    }
    以上是代码,请问怎么求正确的密钥值呀
    是不是输入的值经过加密和 Keylist 里面的值挨个比较?
    比如我输入 abc ,然后 abc 经过加密 : a+'@'^0x20=180 ?然后逆过来求 a 的值??从 key 的矩阵来看总共有 18 位,也就是说输入的值应该有 18 位吧??是不是这些都换算成二进制再来求解的?比如 key 的第一位 180 是 10 进制换算成二进制之后再减去之前的'@'^0x20 的二进制??求大神解答
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2121 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:38 · PVG 10:38 · LAX 19:38 · JFK 22:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.