大家好,我目前正在使用 android 中的 DH 密钥交换做一个客户端服务器应用程序。我在客户端将字符串转换为 long 时遇到问题,奇怪的是转换对前 2 个变量 pValue 和 gValue 有效。但是,当我想从服务器发送它时转换服务器的公钥时。我得到一个数字格式异常:invalid long。我很确定发送过来的数字是数字而不是字母,因为我将它们打印成字符串。服务器将 gValue:pValue:PK 一起发送,由 a 分隔:
下面是我的客户端代码片段。
try {
response = SimpleHttpClient.executeHttpGet("http://10.0.2.2:8000/MyServletProject/DHServlet");
String res = response.toString();
String [] ar = res.split(":");
String primeValue = ar[0];
String genValue = ar[1];
String pkSValue = ar[2];
System.out.println(pkSValue);
long convertPValue = Long.parseLong(primeValue);
long convertGValue = Long.parseLong(genValue);
long convertSValue = Long.parseLong(pkSValue);
//BigInteger biPK;
// biPK = new BigInteger(pkSValue);
//System.out.println(convertPKValue);
long skB=getDH.generateSKB();
BigInteger bi1,bi2,bi3,sKey,biSK;
bi1=BigInteger.valueOf(convertGValue);
bi2=BigInteger.valueOf(convertPValue);
bi3=getDH.generatePkB(bi1, bi2, skB);
biSK = BigInteger.valueOf(skB);
//biPK= new BigInteger(pkSValue);
String PKClient = bi3.toString();
System.out.println("The public key is "+PKClient);
System.out.println("The generator value is "+bi1);
System.out.println("The prime value is "+bi2);
日志猫
07-12 12:24:33.459: I/System.out(2387): 4126158
07-12 12:24:33.459: W/System.err(2387): java.lang.NumberFormatException: Invalid long: "4126158
07-12 12:24:33.479: W/System.err(2387): "
07-12 12:24:33.489: W/System.err(2387): at java.lang.Long.invalidLong(Long.java:125)
07-12 12:24:33.499: W/System.err(2387): at java.lang.Long.parse(Long.java:362)
07-12 12:24:33.499: W/System.err(2387): at java.lang.Long.parseLong(Long.java:353)
07-12 12:24:33.529: W/System.err(2387): at java.lang.Long.parseLong(Long.java:319)
07-12 12:24:33.529: W/System.err(2387): at com.example.firstapp.clientside.LoginLayout$1$1.run(LoginLayout.java:70)
07-12 12:24:33.549: W/System.err(2387): at java.lang.Thread.run(Thread.java:856)
07-12 12:25:55.460: W/IInputConnectionWrapper(2387): showStatusIcon on inactive InputConnection
07-12 12:28:54.453: I/System.out(2437): java.lang.NumberFormatException: Invalid long: "2810970
我真的很难过,希望你们能帮助我。提前致谢!