1 #ifndef LS_ENCRYPT_STRING_H
2 #define LS_ENCRYPT_STRING_H
12 namespace LicenseSpring
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)
103 #endif // LS_ENCRYPT_STRING_H
constexpr Char encrypt_character(const Char character, int index)
constexpr unsigned long long linear_congruent_generator(unsigned rounds)
constexpr Xor_string(const Char *string)
constexpr const unsigned long long XORKEY
#define XSTR_RANDOM_NUMBER(Min, Max)