geekorm_core/utils/crypto/
rand.rs

1use rand::Rng;
2
3/// Character set for generating random strings
4pub const CHARSET: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\
5                            abcdefghijklmnopqrstuvwxyz\
6                            0123456789";
7
8/// Generate a random string of a given length
9pub fn generate_random_string(length: usize, prefix: impl Into<String>) -> String {
10    let mut rng = rand::thread_rng();
11    let mut random_string = String::new();
12    // Generate a random string of the given length using uppercase, lowercase and numbers
13    for _ in 0..length {
14        let random_char = CHARSET[rng.gen_range(0..CHARSET.len())] as char;
15        random_string.push(random_char);
16    }
17    prefix.into() + &random_string
18}