Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::crypto Namespace Reference

密码学相关的命名空间。 More...

Namespaces

namespace  sha256_impl
 SHA256哈希算法的内部实现细节。
namespace  md5_impl
 MD5哈希算法的内部实现细节。
namespace  aes_impl
 AES加密算法的内部实现细节。

Functions

std::string sha256 (const std::string &input)
 计算输入字符串的SHA256哈希值。
std::string file_sha256 (const std::string &filename)
 计算文件的SHA256哈希值。
std::string md5 (const std::string &input)
 计算输入字符串的MD5哈希值。
std::string base64_encode (const std::string &input)
 对输入字符串进行Base64编码。
std::string base64_decode (const std::string &input)
 对Base64编码的字符串进行解码。
std::string aes_encrypt (const std::string &plaintext, const std::string &key)
 使用AES-128-CTR模式加密明文。
std::string aes_decrypt (const std::string &ciphertext, const std::string &key)
 使用AES-128-CTR模式解密密文。

Detailed Description

密码学相关的命名空间。

Function Documentation

◆ aes_decrypt()

std::string console::crypto::aes_decrypt ( const std::string & ciphertext,
const std::string & key )
inline

使用AES-128-CTR模式解密密文。

Parameters
ciphertextBase64编码的密文字符串,包含前16字节的初始化向量。
key解密密钥,必须与加密时使用的密钥相同。
Returns
std::string 解密后的明文字符串,输入错误时返回 "Invalid ciphertext"。
Note
密文格式必须与aes_encrypt函数生成的格式一致。

◆ aes_encrypt()

std::string console::crypto::aes_encrypt ( const std::string & plaintext,
const std::string & key )
inline

使用AES-128-CTR模式加密明文。

加密过程使用CTR计数器模式,初始化向量通过对密钥进行SHA256哈希后取前16字节生成。

Parameters
plaintext要加密的明文字符串。
key加密密钥,将自动填充或截断至16字节。
Returns
std::string Base64编码后的密文,包含前16字节的初始化向量和加密数据。
Note
返回的密文格式为:初始化向量(16字节)+ 密文数据,整体经过Base64编码。

◆ base64_decode()

std::string console::crypto::base64_decode ( const std::string & input)
inline

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

Parameters
inputBase64编码的字符串。
Returns
std::string 解码后的原始字符串。
Note
解码时遇到'='字符会停止处理,非Base64字符会被忽略。

◆ base64_encode()

std::string console::crypto::base64_encode ( const std::string & input)
inline

对输入字符串进行Base64编码。

Parameters
input要编码的原始字符串。
Returns
std::string Base64编码后的字符串。
Note
编码结果末尾会自动添加填充字符'='以确保长度为4的倍数。

◆ file_sha256()

std::string console::crypto::file_sha256 ( const std::string & filename)
inline

计算文件的SHA256哈希值。

Parameters
filename要计算哈希的文件路径。
Returns
std::string 64位十六进制字符串格式的SHA256哈希值。
Warning
对于大文件,该函数会逐块读取,内存占用较小,但处理时间较长。

◆ md5()

std::string console::crypto::md5 ( const std::string & input)
inline

计算输入字符串的MD5哈希值。

Parameters
input要计算哈希的输入字符串。
Returns
std::string 32位十六进制字符串格式的MD5哈希值。
Warning
MD5算法已被证明存在碰撞漏洞,不建议用于安全敏感场景,请考虑使用SHA256替代。

◆ sha256()

std::string console::crypto::sha256 ( const std::string & input)
inline

计算输入字符串的SHA256哈希值。

Parameters
input要计算哈希的输入字符串。
Returns
std::string 64位十六进制字符串格式的SHA256哈希值。