NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到

Base64编码和解码功能 更多...

Base64 的协作图:

struct  base64
 Base64编解码结构体 更多...

函数

NEFORCE_ALWAYS_INLINE_INLINE string base64_encode (const cbyte_view data)
 Base64编码便捷函数(字节视图版本)
NEFORCE_ALWAYS_INLINE_INLINE string base64_encode (const byte_vector &data)
 Base64编码便捷函数(字节向量版本)
NEFORCE_ALWAYS_INLINE_INLINE string base64_encode (const string &data)
 Base64编码便捷函数(字符串版本)
NEFORCE_ALWAYS_INLINE_INLINE string base64_decode (const string_view data)
 Base64解码便捷函数(字符串视图版本)
NEFORCE_ALWAYS_INLINE_INLINE byte_vector base64_decode (const byte_vector &data)
 Base64解码便捷函数(字节向量版本)
NEFORCE_ALWAYS_INLINE_INLINE string base64_decode (const string &data)
 Base64解码便捷函数(字符串版本)

详细描述

Base64编码和解码功能

遵循的国际标准

本实现严格遵循以下互联网标准规范:

标准 Base64 编码:

URL 安全 Base64 编码:

MIME Base64 规范(历史参考):

字符表对比

索引 标准 Base64 (RFC 4648 §4) URL 安全 Base64 (RFC 4648 §5)
0-25 A-Z A-Z
26-51 a-z a-z
52-61 0-9 0-9
62 + - (连字符)
63 / _ (下划线)
填充 = = (可选)

实现细节

  • **编码**:每 3 字节(24 位)输入编码为 4 个 Base64 字符输出
  • **解码**:自动忽略空白字符(空格、制表符、换行符等)
  • **填充处理**:严格遵循 RFC 4648 的填充规则
    • 输入长度非 3 的倍数时,标准编码添加 = 填充至 4 的倍数
    • URL 安全编码可选择省略填充符
  • **错误检测**:解码时检测非法字符和无效填充模式
注解
解码时会自动忽略 RFC 4648 Section 3.2 中定义的空白字符: 空格 (SP)、制表符 (HT)、换行 (LF)、回车 (CR)、换页 (FF)、垂直制表 (VT)
警告
标准 Base64 中的 +/ 字符在 URL 中有特殊含义, 在 URL 参数或文件名中使用时应使用 URL 安全版本。
参见
https://datatracker.ietf.org/doc/html/rfc4648
https://en.wikipedia.org/wiki/Base64

函数说明

◆ base64_decode() [1/3]

NEFORCE_ALWAYS_INLINE_INLINE byte_vector base64_decode ( const byte_vector & data)

Base64解码便捷函数(字节向量版本)

参数
dataBase64编码的字节向量
返回
解码后的字节向量

在文件 base64.hpp150 行定义.

引用了 data() , 以及 base64::decode().

◆ base64_decode() [2/3]

NEFORCE_ALWAYS_INLINE_INLINE string base64_decode ( const string & data)

Base64解码便捷函数(字符串版本)

参数
dataBase64编码的字符串
返回
解码后的字符串

在文件 base64.hpp160 行定义.

引用了 base64_decode() , 以及 data().

◆ base64_decode() [3/3]

NEFORCE_ALWAYS_INLINE_INLINE string base64_decode ( const string_view data)

Base64解码便捷函数(字符串视图版本)

参数
dataBase64编码的字符串
返回
解码后的字符串

在文件 base64.hpp140 行定义.

引用了 data(), vector< T, Alloc >::data(), base64::decode() , 以及 vector< T, Alloc >::size().

被这些函数引用 base64_decode().

◆ base64_encode() [1/3]

NEFORCE_ALWAYS_INLINE_INLINE string base64_encode ( const byte_vector & data)

Base64编码便捷函数(字节向量版本)

参数
data要编码的数据
返回
编码后的字符串

在文件 base64.hpp123 行定义.

引用了 data() , 以及 base64::encode().

◆ base64_encode() [2/3]

NEFORCE_ALWAYS_INLINE_INLINE string base64_encode ( const cbyte_view data)

Base64编码便捷函数(字节视图版本)

参数
data要编码的数据
返回
编码后的字符串

在文件 base64.hpp116 行定义.

引用了 data() , 以及 base64::encode().

◆ base64_encode() [3/3]

NEFORCE_ALWAYS_INLINE_INLINE string base64_encode ( const string & data)

Base64编码便捷函数(字符串版本)

参数
data要编码的字符串
返回
编码后的字符串

在文件 base64.hpp130 行定义.

引用了 data() , 以及 base64::encode().