1#ifndef LS_ENCRYPT_STRING_H
2#define LS_ENCRYPT_STRING_H
17#define TBX_XSTR_SEED ((__TIME__[7] - '0') * 1ull + (__TIME__[6] - '0') * 10ull + \
18 (__TIME__[4] - '0') * 60ull + (__TIME__[3] - '0') * 600ull + \
19 (__TIME__[1] - '0') * 3600ull + (__TIME__[0] - '0') * 36000ull)
22#define TBX_XSTR_SEED (3600ull)
35#define Random_LCG() linear_congruent_generator(10)
36#define XSTR_RANDOM_NUMBER(Min, Max) (Min + (Random_LCG() % (Max - Min + 1)))
46 return character ^
static_cast<Char
>(
XORKEY + index );
60 for(
unsigned i = 0u; i < size; ++i )
61 _string[i] = encrypt_character<Char>(
string[i], i );
69 string[t] =
string[t] ^
static_cast<Char
>(
XORKEY + t );
79#define XorS(name, my_string) constexpr LicenseSpring::Xor_string<(sizeof(my_string)/sizeof(char)), char> name(my_string)
80#define XorString(my_string) []{ constexpr LicenseSpring::Xor_string<(sizeof(my_string)/sizeof(char)), char> expr(my_string); return expr; }().decrypt()
82#define XorWS(name, my_string) constexpr LicenseSpring::Xor_string<(sizeof(my_string)/sizeof(wchar_t)), wchar_t> name(my_string)
83#define XorWideString(my_string) []{ constexpr LicenseSpring::Xor_string<(sizeof(my_string)/sizeof(wchar_t)), wchar_t> expr(my_string); return expr; }().decrypt()
92#define EncryptStr(s) XorString(s)
101#define EncryptWStr(s) XorWideString(s)
#define XSTR_RANDOM_NUMBER(Min, Max)
constexpr Xor_string(const Char *string)
constexpr Char encrypt_character(const Char character, int index)
constexpr unsigned long long linear_congruent_generator(unsigned rounds)
constexpr const unsigned long long XORKEY