From fd29a704906d98c1bacc42dc1f8ec4bc8228af44 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 9 Nov 2018 15:40:07 +0100 Subject: Purchaser::generate_secret(): Use a larger random number pool The `random()` function I was using will sample a value from "the full representable range" (https://docs.rs/rand/0.5.5/rand/#the-two-step-process-to-get-a-random-value). We should really be using longer numbers, so set the sample range to integers above and including 1 billion. --- license-generator/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'license-generator/src') diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index cc39cdb..df1613e 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -14,6 +14,8 @@ mod errors { } } +use rand::Rng; + use errors::*; struct Purchaser<'a> { @@ -37,7 +39,8 @@ impl<'a> Purchaser<'a> { } fn generate_secret(&mut self) { - let random: usize = rand::random(); + let mut rng = rand::thread_rng(); + let random: usize = rng.gen_range(1_000_000_000, std::usize::MAX); let source = format!("{}{}{}", self.name, self.email, random); let digest = sha1::Sha1::from(source).hexdigest(); -- cgit v1.2.3