数据编码解码,掩码处理等 更多...
#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 |
对 Base64 编码的字符串进行解码。
使用 OpenSSL 的 BIO 接口对 Base64 字符串进行解码。该函数不接受带换行符的 Base64 字符串。
| input | Base64 编码的字符串。 |
|
static |
对字符串进行 Base64 编码。
使用 OpenSSL 的 BIO 接口对给定字符串进行 Base64 编码,编码过程中不会插入换行符。
| input | 要编码的原始字符串(可以包含任意二进制数据)。 |
|
static |
生成一个 32 位(4 字节)的随机掩码。
该函数先随机生成一个由 '0' 和 '1' 组成的 32 位字符串(例如:"010110..."), 然后通过内部的 BitUtil::toBit() 函数将其转换为对应的 4 字节二进制数据。
转换结果通过 mask 参数返回,通常用于生成数据包掩码、加密掩码、位图掩码等。
| mask | 用于存放最终生成的 4 字节掩码(二进制字符串形式)。 |
BitUtil::toBit(const std::string&, std::string&),用于将 32 位二进制字符串压缩为 4 字节。
|
static |
使用给定的 4 字节掩码对字符串进行异或操作(XOR Masking)。
此函数对输入字符串 data 的每个字节,按顺序与 mask 中的 4 字节循环异或。 该操作是可逆的,可用于加密或解密 WebSocket 中的掩码数据帧。
| data | 要进行异或处理的数据字符串,处理结果会直接修改该字符串。 |
| mask | 用作掩码的字符串,通常应为至少 4 字节。 |
|
static |
生成 WebSocket 握手响应中的 Sec-WebSocket-Accept 字段值。
该函数基于客户端提供的 Sec-WebSocket-Key,拼接 WebSocket 指定的魔法 GUID, 再进行 SHA-1 哈希与 Base64 编码,得到握手响应所需的 accept 字符串。
| str | 输入为客户端提供的 Sec-WebSocket-Key,会被原地修改为结果字符串(Sec-WebSocket-Accept)。 |
1.8.5