java.security


1. Generating a Key Pair for Encryption

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;

public class GenerateKeyPair {

    public static void main(String[] args) throws NoSuchAlgorithmException {
        // Create a key pair generator
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(2048);

        // Generate the key pair
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
    }
}

2. Encrypting Data with a Public Key

import java.security.Cipher;
import java.security.PublicKey;
import java.util.Base64;

public class EncryptWithPublicKey {

    public static void main(String[] args) throws Exception {
        // Get the public key
        PublicKey publicKey = ...

        // Create a cipher
        Cipher cipher = Cipher.getInstance("RSA");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);

        // Encrypt the data
        String data = "Hello, world!";
        byte[] encryptedData = cipher.doFinal(data.getBytes());

        // Encode the encrypted data in Base64
        String encodedData = Base64.getEncoder().encodeToString(encryptedData);
    }
}

3. Decrypting Data with a Private Key

4. Generating a Message Digest

5. Verifying a Message Digest

6. Signing Data with a Private Key

7. Verifying a Signature with a Public Key

8. Generating a Secure Random Number

9. Generating a Password Hash

10. Verifying a Password Hash