#pragma once #include #include template class ObfuscatedString { private: std::array data; public: constexpr ObfuscatedString(const std::array& obfuscatedData) : data(obfuscatedData) {} /** * @brief Decrypt a string with a static key */ std::string decrypt() const { std::string result; result.resize(N - 1); // remove '\0' for (size_t i = 0; i < N - 1; ++i) result[i] = data[i] ^ KEY; return result; } }; // Helper constexpr to encrypt at building //template template constexpr auto make_obfuscated(const char(&str)[N]) { std::array enc{}; for (size_t i = 0; i < N; ++i) enc[i] = str[i] ^ KEY; return ObfuscatedString(enc); }