欢迎访问宙启技术站
智能推送

如何使用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中生成随机数和加密功能的简单介绍和示例代码,希望对您有所帮助。