44 lines
941 B
C++
44 lines
941 B
C++
#pragma once
|
|
|
|
/**
|
|
* @file rand.hpp
|
|
* @author Felix, Fabienne
|
|
* @brief This header includes only one method which returns a random 64bit
|
|
* unsigned integer
|
|
* @version 0.1
|
|
* @date 2021-07-06
|
|
*
|
|
* @copyright Copyright (c) 2021
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* @brief Rand itself provides a method to get a random number. This number is
|
|
* used in Treatment as cookie_secret
|
|
*
|
|
*/
|
|
class Rand {
|
|
|
|
public:
|
|
/**
|
|
* @brief Get a random 64bit unsigned integer
|
|
*
|
|
* @return u_int64_t
|
|
*/
|
|
static u_int64_t get_random_64bit_value() {
|
|
u_int64_t random64BitNumber = 0;
|
|
|
|
u_int64_t value1 = (uint16_t)std::rand();
|
|
value1 = (value1 << 48);
|
|
random64BitNumber |= value1;
|
|
|
|
u_int64_t value2 = (uint16_t)rand();
|
|
value2 = (value2 << 32);
|
|
random64BitNumber |= value2;
|
|
|
|
u_int64_t value3 = (uint16_t)rand();
|
|
random64BitNumber |= value3;
|
|
|
|
return random64BitNumber;
|
|
}
|
|
}; |