How to Use RSA Encryption in Rust

Use the rsa crate to generate keys and encrypt data in Rust.

Use the rsa crate to generate keys and encrypt data in Rust. Add rsa = "0.9" to your Cargo.toml dependencies, then use RsaPrivateKey to generate keys and encrypt/decrypt methods to process data.

use rsa::{RsaPrivateKey, Oaep};
use rsa::rand_core::OsRng;

fn main() {
    let mut rng = OsRng;
    let bits = 2048;
    let private_key = RsaPrivateKey::new(&mut rng, bits).unwrap();
    let public_key = private_key.to_public_key();
    let message = b"Hello, Rust!";
    let padding = Oaep::new::<sha2::Sha256>();
    let encrypted = public_key.encrypt(&mut rng, padding.clone(), message).unwrap();
    let decrypted = private_key.decrypt(padding, &encrypted).unwrap();
    println!("Decrypted: {}", String::from_utf8_lossy(&decrypted));
}