token-buddy 0.2.0

A Rust library for generating safe, encrypted tokens.
Documentation
extern crate crypto;
use crypto::digest::Digest;
use crypto::sha2::Sha384;
use rand::{thread_rng, Rng};

pub struct TokenGenerator {
    rng: rand::rngs::ThreadRng,
    sha: Sha384,
}

impl TokenGenerator {
    pub fn new() -> TokenGenerator {
        TokenGenerator {
            rng: thread_rng(),
            sha: Sha384::new(),
        }
    }

    pub fn generate(&mut self, length: usize) -> String {
        let mut token = vec![0u8; length];
        self.rng.fill(&mut token[..]);
        self.sha.input(&token);
        let mut output = [0; 48];
        self.sha.result(&mut output);
        self.sha.reset();
        hex::encode(output)
    }
}