ตัวอย่างนี้เป็นสร้างคู่กุญแจ RSA ขึ้นมาใหม่ จากนั้นจึงใช้กุญแจสาธารณะเพื่อเข้ารหัสข้อมูล ข้อมูลที่เข้ารหัสจะถูกพิมพ์ออกมาเป็นอาร์เรย์ของไบต์ การเข้ารหัส RSA ค่อนข้างช้าเมื่อเทียบกับวิธีการเข้ารหัสอื่นๆ และโดยทั่วไปจะใช้ในการเข้ารหัสข้อมูลที่มีขนาดเล็ก เช่น กุญแจ หรือข้อความขนาดเล็ก เช่น รหัสผ่าน ในการใช้งานจริงต้องคำนึงถึงข้อควรพิจารณาด้านความปลอดภัยหลายประการ เช่น ขนาดกุญแจ การเติม (padding) และการใช้ตัวสร้างแบบสุ่มที่เหมาะสม
import java.security.; import javax.crypto.;
public class RSAEncryption {
public static void main(String[] args) {
try {
// Generate a new RSA key pair
KeyPairGenerator keyGen = KeyPairGenerator.getInstance(“RSA”);
keyGen.initialize(2048);
KeyPair keyPair = keyGen.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// Get the data to be encrypted
String data = "This is the data to be encrypted.";
byte[] dataBytes = data.getBytes();
// Encrypt the data using the public key
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedData = cipher.doFinal(dataBytes);
// Print out the encrypted data
System.out.println("Encrypted data: " + new String(encryptedData));
} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) {
e.printStackTrace();
}
}
}