java 如何获取真随机数
时间: 2024-03-21 21:34:12 浏览: 164
Java中获取真随机数需要借助于一些外部的随机数生成器,比如硬件随机数生成器或者网络随机数服务。下面是两种获取真随机数的方法:
1.使用Random.org提供的API获取真随机数。需要使用Java中的网络请求库发送HTTP请求,获取返回的JSON数据中的随机数。示例代码如下:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
public class RandomNumberGenerator {
public static void main(String[] args) {
try {
URL url = new URL("https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
int randomNum = Integer.parseInt(response.toString());
System.out.println("Random number: " + randomNum);
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
2.使用Java中的SecureRandom类生成真随机数。SecureRandom类使用系统提供的随机数生成器来生成随机数,因此可以生成真随机数。示例代码如下:
```java
import java.security.SecureRandom;
public class RandomNumberGenerator {
public static void main(String[] args) {
SecureRandom random = new SecureRandom();
int randomNum = random.nextInt(100000);
System.out.println("Random number: " + randomNum);
}
}
```
阅读全文