Public And Private Key Encryption In Java 90%
import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.util.Base64; public class SymmetricExample { public static void main(String[] args) throws Exception { String data = "Hello World"; // 1. Generate a Secret Key SecretKey key = KeyGenerator.getInstance("AES").generateKey(); // 2. Encrypt Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encryptedBytes = cipher.doFinal(data.getBytes()); String encryptedData = Base64.getEncoder().encodeToString(encryptedBytes); // 3. Decrypt cipher.init(Cipher.DECRYPT_MODE, key); byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedData)); System.out.println("Decrypted: " + new String(decryptedBytes)); } } Use code with caution. 2. Public/Private Key Encryption (Asymmetric)
import java.security.KeyPair; import java.security.KeyPairGenerator; import javax.crypto.Cipher; import java.util.Base64; public class AsymmetricExample { public static void main(String[] args) throws Exception { String data = "Secret Message"; // 1. Generate Key Pair KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(2048); KeyPair pair = keyGen.generateKeyPair(); // 2. Encrypt with Public Key Cipher encryptCipher = Cipher.getInstance("RSA"); encryptCipher.init(Cipher.ENCRYPT_MODE, pair.getPublic()); byte[] encryptedBytes = encryptCipher.doFinal(data.getBytes()); // 3. Decrypt with Private Key Cipher decryptCipher = Cipher.getInstance("RSA"); decryptCipher.init(Cipher.DECRYPT_MODE, pair.getPrivate()); byte[] decryptedBytes = decryptCipher.doFinal(encryptedBytes); System.out.println("Decrypted: " + new String(decryptedBytes)); } } Use code with caution. Key Differences Symmetric (AES) Asymmetric (RSA) One shared key Two keys (Public & Private) Speed Slow (computationally heavy) Use Case Bulk data encryption Secure key exchange & Digital Signatures Security Best Practices
For AES, always use a random IvParameterSpec and AES/GCM/NoPadding for modern security. Public And Private Key Encryption In Java
Use at least 256-bit for AES and 2048-bit (or 3072-bit) for RSA.
In symmetric encryption, the same key is used for both encrypting and decrypting. is the industry standard. import javax
Implementing Public Key (Asymmetric) and Private Key (Symmetric) encryption in Java is straightforward using the built-in . 1. Private Key Encryption (Symmetric)
Never hardcode keys. Use the Java KeyStore (JKS) or a cloud-based Vault. Decrypt cipher
Asymmetric encryption uses a : a Public Key for encryption and a Private Key for decryption. RSA is the most common algorithm for this.


