如何生成NONCE并在ANDROID的客户端打印它

seb*_*zml 4 java android client-server

我现在正在研究一个与IMS有关的Android程序.我希望服务器将一个随机数发送回客户端作为字符串并在客户端打印.为了生成nonce,我尝试使用此站点的代码.

http://www.exampledepot.com/egs/java.security/CreateSecureRandom.html

部分代码如下

public static String generateNonce() { 
  try {
   // Create a secure random number generator
   SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");

   // Get 1024 random bits
   byte[] bytes = new byte[1024/8];
   sr.nextBytes(bytes);

   // Create two secure number generators with the same seed
   int seedByteCount = 10;
   byte[] seed = sr.generateSeed(seedByteCount);

   sr = SecureRandom.getInstance("SHA1PRNG");
   sr.setSeed(seed);
   SecureRandom sr2 = SecureRandom.getInstance("SHA1PRNG");
   sr2.setSeed(seed);
   } catch (NoSuchAlgorithmException e) {
  }
  //return NONCE;
  return null;
 }
Run Code Online (Sandbox Code Playgroud)

NONCE = generateNonce();在开始时宣布.但问题是不是获取nonce值,而是在客户端打印为null.当我尝试在服务器端打印它时,它也显示为null.

请允许有人告诉我代码中的错误或帮助我提供更好或更合适的编码.非常感谢提前.

此致,Sebby.

Ant*_*ney 7

您需要将return语句添加到您想要返回的值,现在您的代码生成(或似乎生成)NONCE,但您返回,null因此String NONCE的值为null.

您还应该删除该return null声明.如果你保留它并且它是最后一个 return语句,你的代码将生成一个有效的NONCE,会返回null.