V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hq2006dp
V2EX  ›  问与答

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

  •  
  •   hq2006dp · Oct 19, 2015 · 1227 views
    This topic created in 3843 days ago, the information mentioned may be changed or developed.
    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 的二进制??求大神解答
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5845 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 01:52 · PVG 09:52 · LAX 18:52 · JFK 21:52
    ♥ Do have faith in what you're doing.