将4位数字加密到十六进制

时间:2017-11-14 11:19:42

标签: java encryption hex

这些是程序必须遵循的步骤:

  1. 请求4位数针的用户输入。 [完成]
  2. 将4位数针转换为十六进制。 [?]
  3. 生成两个大于1000的随机数并转换为十六进制。[?]
  4. 将转换后的引脚夹在两个随机转换的数字之间。 [可以做到]
  5. 到目前为止,我的代码是:

    public static void main(String[] args) 
    {
        int digit = 0;
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter a four digit pin:");
        digit = scan.nextInt(); // scanning for user input
    
        String Hexpin =Integer.toHexString(digit);
        System.out.println(Hexpin); 
    }
    

    我目前需要帮助将引脚转换为十六进制并生成两个大于1000的随机数并将它们转换为十六进制。然而,我可以轻松地做三明治。我试着在此之前寻找答案,但找不到其他任何东西:

    C# convert integer to hex and back again

    然而,本文将int转换为十六进制字符串而非十进制。

3 个答案:

答案 0 :(得分:1)

尝试一下我觉得这就是你要求的。只需要一个小修复。希望有所帮助!

    public static void main(String[] args){

    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter a four digit pin:");
    int digit = scan.nextInt(); // scanning for user input as INT
    String hexDigit = Integer.toHexString(digit); //convert PIN to hex

    int one = ((int)(Math.random()+1000)*10000); //two randoms bw 1000 and 10000
    int two = ((int)(Math.random()+1000)*10000);

    String oneStr = Integer.toHexString(one); //convert to hex
    String twoStr = Integer.toHexString(two); //convert to hex

    System.out.println(oneStr + hexDigit + twoStr); //print concated
}

答案 1 :(得分:0)

使用Integer.valueOf(String.valueOf(digit), 16)进行转化。如果您更改了digit并将其设为String,则无需执行String.valueOf(...)

<强>结果:

In: 1234 
Out(hex): 4660

答案 2 :(得分:0)

要转换为十六进制使用:

String Hexpin = Integer.toHexString(digit);

要转换回整数使用:

int numberFromHex = Integer.parseInt(Hexpin, 16);

明确您的代码评论中所谓的异常结果。