You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iAlg/iAlgEnc/zxEncryptAES - 副本.h

48 lines
1.4 KiB
C++

#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;
};