This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center




8年前关闭。




我现在正在为 Android 开发一个与 IMS 相关的程序。
我希望服务器将随机数作为字符串发送回客户端并在客户端打印。
为了生成 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;
 }

我在开始时声明了 NONCE = generateNonce();
但问题是它没有得到一个 nonce 值,而是在客户端打印为 null 。当我尝试在服务器端打印它时,它也显示为 null

有人可以启发我的代码中的错误或帮助我更好或更合适的编码,请。非常感谢。

问候,
塞比。

最佳答案

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

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

10-08 13:44