#pragma once #include "zxAes.h" // AES算法外调函数类 class I_ALGENC_EXPORT zxEncryptAES { public: zxEncryptAES(); ~zxEncryptAES(); /// @brief 加密解密部分 // 把文件 加密 或 解密 为文件 // 注意:该函数不做文件是否同一个文件的判断,请自行处理 bool encryptFile2File(QString sFileSrc, QString sFileDest); bool decryptFile2File(QString sFileSrc, QString sFileDest); // 把文件 加密 或 解密 为QByteArray bool encryptFile2Ba(QString sFileSrc, QByteArray& ba); bool decryptFile2Ba(QString sFileSrc, QByteArray& ba); // 把 String 或 解密 为 String bool encryptStr2Str(QString s1, QString& s2); bool decryptStr2Str(QString s1, QString& s2); // 把文件 QByteArray 或 解密 为QByteArray bool encryptBa2Ba(QByteArray ba1, QByteArray& ba2); bool decryptBa2Ba(QByteArray ba1, QByteArray& ba2); private: // 内部实现函数 void _initPrivateKey(DWORD nKeySize, UCHAR *pKeyBytes); //AES 密钥初始化 DWORD _aesEnc(LPVOID bufferIns, DWORD nLen, LPVOID bufferOuts); //AES 加密数据 DWORD _aesDec(LPVOID bufferIns, DWORD nLen, LPVOID bufferOuts); //AES 解密数据 bool _encDecBa(QByteArray& baInput, QByteArray& baOutput, bool bEncMode); // 存为文件,内部使用 bool _saveBa2File(QByteArray& ba, QString sFileDest); private: zxAes* m_pAes; };