From e55fdbdf7d8483954f8a8373dde74665ce87d9eb Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 14 Nov 2018 15:30:10 +0100 Subject: purchaser: Add timestamp to secret Trying to add a little more entropy to the calculation. Went with chrono instead of `std::time` because it gives me an `i64` timestamp instead of a `Result`. --- license-generator/src/lib.rs | 1 + license-generator/src/purchaser.rs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'license-generator/src') diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index eae9df0..697bfa6 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -1,4 +1,5 @@ extern crate aquatic_prime; +extern crate chrono; #[macro_use] extern crate error_chain; diff --git a/license-generator/src/purchaser.rs b/license-generator/src/purchaser.rs index d189c11..60e389a 100644 --- a/license-generator/src/purchaser.rs +++ b/license-generator/src/purchaser.rs @@ -1,3 +1,4 @@ +use chrono::Utc; use mysql; use rand::{self, Rng}; use sha1; @@ -24,10 +25,12 @@ impl<'a> Purchaser<'a> { } fn generate_secret(&mut self) { + let timestamp = Utc::now().timestamp(); + 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 source = format!("{}{}{}{}", self.name, self.email, timestamp, random); let digest = sha1::Sha1::from(source).hexdigest(); self.secret = Some(digest); -- cgit v1.2.3