Java Pin加密4位数字到十六进制
以下是程序必须遵循的步骤:Java Pin加密4位数字到十六进制,java,encryption,hex,Java,Encryption,Hex,以下是程序必须遵循的步骤: 请求用户输入4位pin码。[完成] 将4位pin转换为十六进制。[?] 生成两个大于1000的随机数并转换为十六进制。[?] 将转换的pin夹在两个随机转换的数字之间。[可以做到] 到目前为止,我掌握的代码是: public static void main(String[] args) { int digit = 0; Scanner scan = new Scanner(System.in); System.out.println("Pl
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);
}
我目前需要帮助将pin转换为十六进制,生成两个大于1000的随机数,并将它们转换为十六进制。然而,我可以很容易地做三明治。在此之前,我试图寻找答案,但除了以下内容外,我什么也找不到:
但是,本文将int转换为十六进制字符串而不是十进制。使用Integer.valueOf(string.valueOf(digital),16)
进行转换。如果更改数字
并使其成为字符串
,则无需执行字符串。value of(…)
结果:
In: 1234
Out(hex): 4660
要转换为十六进制,请使用:
String Hexpin = Integer.toHexString(digit);
要转换回整数,请使用:
int numberFromHex = Integer.parseInt(Hexpin, 16);
请明确在代码注释中您所称的异常结果。试试看,我认为这就是您所要求的。只是需要一个小补丁。希望有帮助
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
}
//结果异常?
-有什么异常?编辑:结果并不异常,只是再次测试,请忽略我之前的评论。如果您所做的只是用十六进制打印数字,最简单的方法是System.out.printf(“%x”,数字)代码>。要“三明治”它:System.out.println(“%x%x%x”,前面,后面,数字)代码>。