Wizard Magic Key Cyber
by SN-Grotesque
此库已在以下环境下测试通过:
- Ubuntu/Debian系Linux操作系统 - GCC套件
- Windows 10操作系统 - MinGW64 - Visual Studio (2019~2022)
- 此库支持64位操作系统(Windows,Linux),并支持MingW64与MSVC(Visual Studio 2019+)与支持C++14标准的GCC套件。
- 对于
MingW64
与GCC套件
的使用,可以直接调用根目录的run.py代码来执行(功能基本上等同于make)。
而对于Visual Studio
,需要自行将库编译为dll文件或者在主程序代码文件中包含*.cpp
文件。 - 在
python
目录下是一些我编写的Python代码,主要为一些爬虫库。
- 开发标准:
应使用至少支持C++14的编译器来对代码进行编译,同时为了保证Linux系统的可移植性。应尽量避免使用C++20及以上标准以兼容低版本GCC套件。
- 代码风格:
每行不超过90个字符,注释请添加在可能会引起困惑或误会的部分。
- 代码层级:
不超过3级,等同于Linux内核开发级别的层级控制。
修改了版本后需要更改的文件
upload.py
READMKE.md
- 重写了wmkc::Exception(抛弃原先的函数调用std::runtime_error的形式),将其作为一个完整的异常类使用,继承于std::exception。
- 增加了对于wmkc::crypto::fea::ctr_xcrypt的更多支持,现在请使用counter类来构建一个计数器。
- 将所有类的名称使用大驼峰命名法,跟随编码规范。
更新了终端字体颜色库对于C++的支持,抛弃了原先的C语法。
- 所有C++代码重新组织代码结构,将所有功能列入wmkc命名空间,并将原有的类更名。
例如:wmkcBase64变为wmkc::base64
,其中的方法encode变为wmkc::base64().encode()
- 重新优化所有代码。
- 修复了FEA加密算法的一个密钥长度隐患。
- 完成了
wmkc::structure::pack
,但是需要使用者注意C/C++
的特性,解释在struct.hpp头部。
- C++代码为完全复刻C代码的内容,但是修复了各种问题与难用性。
- C代码暂时停止维护,其中存在内存泄露等问题,如需使用,请尽可能使用C++代码。
- 新增C++代码
- 重构wmkcNet库与wmkcError结构。
- 优化了wmkc_obj结构。
- 优化了wmkc_file库的编码转换功能。
- 新增了wmkcSSL库用于进行HTTPS通信。
- 新增了C++代码,以便于实现各种面向对象的功能。
- 预计将所有实现改为内部实现,然后将函数作为类成员的方式使用(由于效率原因已弃之)。
- 修复了network/wmkc_net库中对于wmkcNet_timeout函数的实现,
傻逼微软你妈死了,弄你妈的毫秒单位啊。
- 将修改wmkcNet库,以支持一定情况下的OpenSSL组件,以便于进行HTTPS通信。
- 将完善wmkcFile库,更好的支持对于不同操作系统的文件操作函数。
- 将针对所有WMKC库进行优化。
- 将wmkc_chat库中的对象指针成员修改为数组成员,
否则会导致无意义的代码过长。 - 重构了wmkc_file库,删除了wmkcFile对象。
- 放弃使用icu4c库对编码进行转换,改用iconv库。
- 小幅度修改了wmkc_pad,wmkc_base64库。
- 删除了wmkcFloat,wmkcFile类型,多余而且扰乱思绪。
- 将wmkcMisc_PRINT_RAW函数修改为了类似Python中的print bytes类型的实现。
- 将wmkc_base修改为wmkc_base64,因考虑到
不会添加base16(因为此编码可以使用wmkc_binascii库实现)
不会添加Base32(因为此编码实在没有必要添加)
不会添加Base85(因为此编码(又称Ascii85)目前还没有一个完美的标准)
并将Base64的编码与解码库重新设计,去掉了基于wmkc对象的形式。 - 添加了wmkc_dict库,更好的操作键值对类型的数据。
- 修改了关于颜色的宏。
- 修复了wmkc_misc库的BUG。
- 部署了libpng库,重新构建了zlib库文件。
- 修复了wmkc_stream库中wmkc_scanf函数的隐藏BUG。
- 将wmkcStream库中的wmkcStream_scanf函数移动到wmkc_common库并更名为wmkc_scanf。
- 修改了wmkc_random,wmkc_time库的实现。
- 修复了wmkc_base库的错误信息不全的问题。
- 修改了对于系统宏的名称标识。
- 增加了适当的文档与注释。
- 增加了wmkc_thread库用于多线程编程。
- 将库更名为Wizard Magic Key Cyber,原因是与目前某一组织名称重合。
- 将库函数与一般变量类型与宏函数做了更名。
- 修改了一些针对不同操作系统的支持。