如何使用Java函数来生成随机数和加密功能?
发布时间:2023-06-13 00:26:01
Java提供了许多函数来生成随机数和加密功能,下面我们将详细介绍如何使用这些函数。
一、生成随机数
Java提供了两种方式生成随机数:Random和Math.random()。
1、Random
Random类是Java中用来生成伪随机数的类,可以生成不同类型的随机数,如整数、浮点数、布尔值等。
代码示例:
import java.util.Random;
public class RandomNumber {
public static void main(String[] args) {
Random random = new Random();
int randomNumber = random.nextInt(100); //生成0-99的随机整数
System.out.println(randomNumber);
}
}
2、Math.random()
Math.random()方法返回一个[0,1)之间的double类型随机数。
代码示例:
public class RandomNumber {
public static void main(String[] args) {
double randomNumber = Math.random();
System.out.println(randomNumber);
}
}
二、加密功能
Java提供了很多标准的加密算法,如MD5、SHA、AES等。我们可以使用Java提供的加密相关类来实现加密和解密操作。
1、MD5加密
MD5是一种常用的加密算法,可以生成128位的散列值。Java提供了java.security.MessageDigest类来实现MD5加密。
代码示例:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Encryption {
public static void main(String[] args) throws NoSuchAlgorithmException {
String str = "This is a string to be encrypted.";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b & 0xff));
}
System.out.println(sb.toString());
}
}
2、AES加密
AES是一种高级加密标准,可以作为对称密钥加密算法,即使用相同的密钥加密和解密数据。Java提供了javax.crypto包来实现AES加密。
代码示例:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESEncryption {
public static void main(String[] args) throws Exception {
String str = "This is a string to be encrypted.";
SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey();
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(str.getBytes());
String encryptedStr = Base64.getEncoder().encodeToString(encryptedBytes);
System.out.println(encryptedStr);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedStr));
String decryptedStr = new String(decryptedBytes);
System.out.println(decryptedStr);
}
}
以上是Java中生成随机数和加密功能的简单介绍和示例代码,希望对您有所帮助。
