From 44a727782753e34528c2c3b9691101cc2693f8dd Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Tue, 10 Jun 2025 12:04:45 +0800 Subject: [PATCH] time_based_rand --- src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 3f24fdf..ef99c7b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -447,6 +447,20 @@ pub fn version_check_request(typ: String) -> (VersionCheckRequest, String) { ) } +pub fn time_based_rand() -> u32 { + let nanos = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos(); + + let mut x = nanos as u64; + x ^= x << 13; + x ^= x >> 7; + x ^= x << 17; + + (x % 32768) as u32 +} + #[cfg(test)] mod test { use super::*;