NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
base64.hpp
浏览该文件的文档.
1#ifndef NEFORCE_CORE_ENCRYPT_BASE64_HPP__
2#define NEFORCE_CORE_ENCRYPT_BASE64_HPP__
3
12
15NEFORCE_BEGIN_NAMESPACE__
16
21
69
77struct NEFORCE_API base64 {
83 static string encode(cbyte_view data);
84
92
99 static string encode_url(cbyte_view data, bool padding = false);
100
108};
109
110
116NEFORCE_ALWAYS_INLINE_INLINE string base64_encode(const cbyte_view data) {
117 if (data.empty()) {
118 return {};
119 }
120 return base64::encode(data);
121}
122
128NEFORCE_ALWAYS_INLINE_INLINE string base64_encode(const byte_vector& data) {
129 if (data.empty()) {
130 return {};
131 }
132 return base64::encode(data.view());
133}
134
140NEFORCE_ALWAYS_INLINE_INLINE string base64_encode(const string& data) {
141 if (data.empty()) {
142 return {};
143 }
144 return base64::encode(cbyte_view{reinterpret_cast<const byte_t*>(data.data()), data.size()});
145}
146
147
153NEFORCE_ALWAYS_INLINE_INLINE string base64_decode(const string_view data) {
154 if (data.empty()) {
155 return {};
156 }
158 return string{reinterpret_cast<const char*>(d.data()), d.size()};
159}
160
166NEFORCE_ALWAYS_INLINE_INLINE byte_vector base64_decode(const byte_vector& data) {
167 if (data.empty()) {
168 return {};
169 }
170 const string_view view{reinterpret_cast<const char*>(data.data()), data.size()};
171 return base64::decode(view);
172}
173
179NEFORCE_ALWAYS_INLINE_INLINE string base64_decode(const string& data) {
180 if (data.empty()) {
181 return "";
182 }
183 return base64_decode(data.view());
184}
185 // Base64
187 // Encryption
189
190NEFORCE_END_NAMESPACE__
191#endif // NEFORCE_CORE_ENCRYPT_BASE64_HPP__
constexpr pointer data() noexcept
获取底层数据指针
constexpr size_type size() const noexcept
获取当前元素数量
string base64_decode(const string_view data)
Base64解码便捷函数(字符串视图版本)
string base64_encode(const cbyte_view data)
Base64编码便捷函数(字节视图版本)
vector< byte_t > byte_vector
字节向量类型别名
unsigned char byte_t
字节类型,定义为无符号字符
memory_view< const byte_t > cbyte_view
常量字节视图类型别名
basic_string_view< char > string_view
字符字符串视图
constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针
字符串类型别名和实用函数
Base64编解码结构体
static string encode_url(cbyte_view data, bool padding=false)
URL安全的Base64编码
static byte_vector decode(string_view data)
Base64解码
static string encode(cbyte_view data)
Base64编码
static byte_vector decode_url(string_view data)
URL安全的Base64解码
动态大小数组容器