Skip to content
This repository was archived by the owner on Mar 16, 2026. It is now read-only.

sngrotesque/wizard_key

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本仓库将不再更新(This repository will not be updated)

🔐 The Wizard's Universal Key

一个模块化、安全和跨平台的 C++ 框架,用于构建具有加密功能、网络通信和数据处理实用程序的健壮应用程序。

概述

巫师的万能密钥(WUK)是一个综合性的 C++ 库,旨在为开发人员提供一套安全应用程序开发的基本工具。
从加密算法到网络通信和数据结构实用程序,WUK 旨在简化复杂的工作,同时保持高安全标准。

  • 现代 C++:使用 C++17 标准和现代编程实践构建。
  • 模块化设计:组织成逻辑组件,便于集成。
  • 跨平台:支持 Windows、Linux和其他操作系统。
  • 安全重点:实现行业标准和符合行业标准的自研加密算法。
  • 网络:强大的套接字处理和协议支持。

🍻快速入门

目前此库代码已在以下环境完全通过测试,意味着此库完全支持以下环境编译运行。

  • MSVC (Visual Studio 2019-2022)
  • MinGW (GCC on Windows)
  • Linux GCC/Clang
  • Clang (Termux/Android)

先决条件

  • 最低支持 C++17 的编译器(GCC 7+、Clang 5+、MSVC 2017+)。
  • CMake 3.15+(用于构建),暂时还用不到 CMake
  • Python 3.6+。不要担心,Python只是用来更方便的构建脚本所使用的,没有它你其实也可以构建。
  • 此库使用以下开源库( Necessity 仅代表你可以不依赖于对应库来运行此库的基础功能):
    Name Necessity Description
    libfmt Yes 高性能、安全的 C++ 字符串格式化库
    libsodium No 现代加密库,提供安全加密、签名、哈希等功能
    libpng No 处理 PNG 图片的读写官方库
    libpq No PostgreSQL 数据库的 C 语言客户端接口
    OpenSSL No 实现 SSL/TLS 协议及常用加密算法的库
    Protobuf No Google研发的高效的结构化数据序列化工具
    Zlib No 通用数据压缩/解压库(DEFLATE 算法)

Windows 特殊性

注意!如果你使用的是 Windows 系统,那么应该注意 CHCP 应始终是 65001
尤其是在控制台环境下,否则会出现一些令你感到难受却又可能找不出问题的 BUG 。

参考:GetConsoleOutputCPSetConsoleOutputCP

安装必要依赖

### CMake - Linux, Android (Termux), Mac OS #########################################
# 更新本地包列表 & 安装必要的程序
apt update && apt upgrade -y
apt install git cmake make gcc g++ -y
# 克隆仓库
git clone --single-branch https://github.com/fmtlib/fmt.git
# 进入目录并创建构建目录
cd fmt && mkdir build && cd build
# 生成构建文件
cmake -DCMAKE_INSTALL_PREFIX="你的安装路径" -DCMAKE_BUILD_TYPE=Release ..
# 构建和安装
cmake --build . --target install

### Cmake - Windows #################################################################
# 克隆仓库
git clone --single-branch https://github.com/fmtlib/fmt.git
# 进入目录并创建构建目录
cd fmt && mkdir build && cd build
# 生成构建文件
cmake -DCMAKE_INSTALL_PREFIX="你的安装路径" -DCMAKE_BUILD_TYPE=Release ..
# 构建和安装
cmake --build . --config Release --target INSTALL

### MSYS2 MinGW64 - Windows #########################################################
pacman -Syu
pacman -S mingw-w64-x86_64-fmt

最小化测试代码

#include <fmt/core.h>

#ifdef _MSC_VER
#    pragma comment(lib, "libfmt")
#endif

int main() {
    fmt::print("hello, {}\n", "world");
    return 0;
}
# 编译执行(Linux, MinGW64, Mac OS, Termux)
g++ test.cpp -lfmt -o test && ./test # 或替换为clang

使用

git clone --single-branch git@github.com:sngrotesque/wizard_key.git
cd wizard_key/

# 使用测试代码进行构建运行测试
python3 py/exec.py [test_file] [complier paramater]

# 比如
python3 py/exec.py test/test.cc
# 再比如
python3 py/exec.py test/im/user.cc -lssl -lcrypto -lpq

对于源文件的包含,请查看exec.pymain 函数的部分。

文档

  • API参考:详细文档内容可在 API.md 中找到。
  • 更新日志:跟踪 wizard_key 的版本修改可在 CHANGELOG.md
  • 示例代码:使用此库可参考目录test

许可证

该项目使用 Apache 2.0 许可证,有关详细信息,请参阅 LICENSE 文件。

联系

如有疑问和支持,请在仓库打开一个 Issues,感谢理解。

主要特点

密码学

  • OP4 加密算法。
  • ChaCha20(RFC 8439)实现。
  • SHA-2 和 SHA-3 系列哈希函数。
  • Base64 编码/解码。

联网

  • 封装于 libpqwuk::db::psql(不使用 libpqxx )。
  • 现代套接字封装:wuk::net::Socket
  • 用于网络数据包协议的 Protobuf
  • IO多路复用支持:select/poll/epoll/IOCP。

二进制操作

  • Binascii 实现。
  • 二进制序列与数字互转。

About

C++库,包含多种功能。如密码库,编码库,网络库等。库名意为:网络巫师的万能密钥。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors