Convert Array of Integers to Orignal Text

code -

fn main() {
    
let mut rng = rand::thread_rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);


// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Pkcs1v15Encrypt, &data[..]).expect("failed to encrypt");

assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt(Pkcs1v15Encrypt, &enc_data).expect("failed to decrypt");
println!("--------------------------------------------------------");
println!("Orignal Data Decrypted :- {:?}",dec_data);
assert_eq!(&data[..], &dec_data[..]);

}

Output -

--------------------------------------------------------
Orignal Data Decrypted :- [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

Now How to Convert this To orignal Text ?
Sorry if my Query is Too Much Simple to solve.

1 Like

Since decrypt returns Result<Vec<u8>>, dec_data is a mere slice/vec of bytes.

So to convert UTF8 bytes (your source data) to string, you can do this

    println!("{}", std::str::from_utf8(&dec_data).unwrap());
    println!("{}", String::from_utf8(dec_data).unwrap());
1 Like

@vague Thanks.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.