STTNet
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 宏定义 
静态 Public 成员函数 | 所有成员列表
stt::data::EncodingUtil类 参考

数据编码解码,掩码处理等 更多...

#include <sttnet.h>

静态 Public 成员函数

static std::string base64_encode (const std::string &input)
 对字符串进行 Base64 编码。 更多...
 
static std::string base64_decode (const std::string &input)
 对 Base64 编码的字符串进行解码。 更多...
 
static std::string & transfer_websocket_key (std::string &str)
 生成 WebSocket 握手响应中的 Sec-WebSocket-Accept 字段值。 更多...
 
static std::string & generateMask_4 (std::string &mask)
 生成一个 32 位(4 字节)的随机掩码。 更多...
 
static std::string & maskCalculate (std::string &data, const std::string &mask)
 使用给定的 4 字节掩码对字符串进行异或操作(XOR Masking)。 更多...
 

详细描述

数据编码解码,掩码处理等

成员函数说明

static std::string stt::data::EncodingUtil::base64_decode ( const std::string &  input)
static

对 Base64 编码的字符串进行解码。

使用 OpenSSL 的 BIO 接口对 Base64 字符串进行解码。该函数不接受带换行符的 Base64 字符串。

参数
inputBase64 编码的字符串。
返回
解码后的原始字符串。
static std::string stt::data::EncodingUtil::base64_encode ( const std::string &  input)
static

对字符串进行 Base64 编码。

使用 OpenSSL 的 BIO 接口对给定字符串进行 Base64 编码,编码过程中不会插入换行符。

参数
input要编码的原始字符串(可以包含任意二进制数据)。
返回
编码后的 Base64 字符串。
static std::string& stt::data::EncodingUtil::generateMask_4 ( std::string &  mask)
static

生成一个 32 位(4 字节)的随机掩码。

该函数先随机生成一个由 '0' 和 '1' 组成的 32 位字符串(例如:"010110..."), 然后通过内部的 BitUtil::toBit() 函数将其转换为对应的 4 字节二进制数据。

转换结果通过 mask 参数返回,通常用于生成数据包掩码、加密掩码、位图掩码等。

参数
mask用于存放最终生成的 4 字节掩码(二进制字符串形式)。
返回
返回 mask 的引用。
注解
内部依赖函数 BitUtil::toBit(const std::string&, std::string&),用于将 32 位二进制字符串压缩为 4 字节。
static std::string& stt::data::EncodingUtil::maskCalculate ( std::string &  data,
const std::string &  mask 
)
static

使用给定的 4 字节掩码对字符串进行异或操作(XOR Masking)。

此函数对输入字符串 data 的每个字节,按顺序与 mask 中的 4 字节循环异或。 该操作是可逆的,可用于加密或解密 WebSocket 中的掩码数据帧。

参数
data要进行异或处理的数据字符串,处理结果会直接修改该字符串。
mask用作掩码的字符串,通常应为至少 4 字节。
返回
引用,指向处理后的 data 字符串。
static std::string& stt::data::EncodingUtil::transfer_websocket_key ( std::string &  str)
static

生成 WebSocket 握手响应中的 Sec-WebSocket-Accept 字段值。

该函数基于客户端提供的 Sec-WebSocket-Key,拼接 WebSocket 指定的魔法 GUID, 再进行 SHA-1 哈希与 Base64 编码,得到握手响应所需的 accept 字符串。

参数
str输入为客户端提供的 Sec-WebSocket-Key,会被原地修改为结果字符串(Sec-WebSocket-Accept)。
返回
引用返回修改后的 str。
注解
实现参考 RFC 6455 第 4.2.2 节握手过程。

该类的文档由以下文件生成: