NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
xor.hpp
浏览该文件的文档.
1#ifndef NEFORCE_CORE_ENCRYPT_XOR_HPP__
2#define NEFORCE_CORE_ENCRYPT_XOR_HPP__
3
11
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
34struct NEFORCE_API XOR {
45
55 static byte_vector decrypt(cbyte_view data, cbyte_view key) { return encrypt(data, key); }
56};
57
58
65NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_encrypt(const cbyte_view data, const cbyte_view key) {
66 return XOR::encrypt(data, key);
67}
68
75NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_encrypt(const byte_vector& data, const byte_vector& key) {
76 return XOR::encrypt(data.view(), key.view());
77}
78
85NEFORCE_ALWAYS_INLINE_INLINE string XOR_encrypt(const string& data, const string& key) {
86 const byte_vector e = XOR_encrypt(cbyte_view{reinterpret_cast<const byte_t*>(data.data()), data.size()},
87 cbyte_view{reinterpret_cast<const byte_t*>(key.data()), key.size()});
88 return string(e.begin(), e.end());
89}
90
91
98NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_decrypt(const cbyte_view data, const cbyte_view key) {
99 return XOR::decrypt(data, key);
100}
101
108NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_decrypt(const byte_vector& data, const byte_vector& key) {
109 return XOR::decrypt(data.view(), key.view());
110}
111
118NEFORCE_ALWAYS_INLINE_INLINE string XOR_decrypt(const string& data, const string& key) {
119 const byte_vector d = XOR_decrypt(cbyte_view{reinterpret_cast<const byte_t*>(data.data()), data.size()},
120 cbyte_view{reinterpret_cast<const byte_t*>(key.data()), key.size()});
121 return string(d.begin(), d.end());
122}
123 // Encryption
125
126NEFORCE_END_NAMESPACE__
127#endif // NEFORCE_CORE_ENCRYPT_XOR_HPP__
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 size_type size() const noexcept
获取字符数
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 pointer data() noexcept
获取数据指针
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 memory_view< T > view() noexcept
获取底层数据的视图
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator end() noexcept
获取结束迭代器
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 iterator begin() noexcept
获取起始迭代器
vector< byte_t > byte_vector
字节向量类型别名
unsigned char byte_t
字节类型,定义为无符号字符
static byte_vector encrypt(cbyte_view data, cbyte_view key)
XOR加密
static byte_vector decrypt(cbyte_view data, cbyte_view key)
XOR解密
定义 xor.hpp:55
memory_view< const byte_t > cbyte_view
常量字节视图类型别名
basic_string< char > string
字符字符串
NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_decrypt(const cbyte_view data, const cbyte_view key)
XOR解密便捷函数(字节视图版本)
定义 xor.hpp:98
NEFORCE_ALWAYS_INLINE_INLINE byte_vector XOR_encrypt(const cbyte_view data, const cbyte_view key)
XOR加密便捷函数(字节视图版本)
定义 xor.hpp:65
字符串类型别名和实用函数
XOR异或加密结构体
定义 xor.hpp:34
动态大小数组容器