Rust Random Bytes: генерация байтов размером более 32

В Rust, если вы хотите генерировать случайные байты длиной более 32, вы можете использовать различные методы. Вот несколько вариантов:

  1. Использование ящика rand:

    use rand::Rng;
    fn generate_random_bytes(size: usize) -> Vec<u8> {
       let mut rng = rand::thread_rng();
       let random_bytes: Vec<u8> = (0..size).map(|_| rng.gen()).collect();
       random_bytes
    }
    fn main() {
       let size = 64; // Change the size as per your requirement
       let random_bytes = generate_random_bytes(size);
       println!("{:?}", random_bytes);
    }
  2. Использование крейта getrandom:

    use getrandom::getrandom;
    fn generate_random_bytes(size: usize) -> Result<Vec<u8>, getrandom::Error> {
       let mut random_bytes = vec![0; size];
       getrandom(&mut random_bytes)?;
       Ok(random_bytes)
    }
    fn main() {
       let size = 64; // Change the size as per your requirement
       match generate_random_bytes(size) {
           Ok(random_bytes) => println!("{:?}", random_bytes),
           Err(e) => eprintln!("Error: {}", e),
       }
    }
  3. Использование крейта openssl:

    use openssl::rand::rand_bytes;
    fn generate_random_bytes(size: usize) -> Result<Vec<u8>, openssl::error::ErrorStack> {
       let mut random_bytes = vec![0; size];
       rand_bytes(&mut random_bytes)?;
       Ok(random_bytes)
    }
    fn main() {
       let size = 64; // Change the size as per your requirement
       match generate_random_bytes(size) {
           Ok(random_bytes) => println!("{:?}", random_bytes),
           Err(e) => eprintln!("Error: {}", e),
       }
    }

Это всего лишь несколько примеров. Существуют и другие библиотеки и методы для генерации случайных байтов в Rust. Не забудьте настроить параметр размера в соответствии с желаемой длиной в байтах.

Ящик

, ящик getrandom, ящик openssl