GrabBag/AppUtils/AppCommon/Inc/ConfigEncryption.h

83 lines
2.4 KiB
C
Raw Normal View History

#ifndef CONFIGENCRYPTION_H
#define CONFIGENCRYPTION_H
#include <QString>
#include <QByteArray>
/**
* @brief
*
*
* 使 AES-256
*/
class ConfigEncryption
{
public:
/**
* @brief
* @param plainData
* @param password
* @return
*/
static QByteArray EncryptConfig(const QByteArray& plainData, const QString& password);
/**
* @brief
* @param encryptedData
* @param password
* @return
*/
static QByteArray DecryptConfig(const QByteArray& encryptedData, const QString& password);
/**
* @brief
* @param filePath
* @param password
* @return true false
*/
static bool EncryptFile(const QString& filePath, const QString& password);
/**
* @brief
* @param filePath
* @param password
* @return true false
*/
static bool DecryptFile(const QString& filePath, const QString& password);
/**
* @brief
* @param encryptedData
* @param password
* @return true false
*/
static bool VerifyPassword(const QByteArray& encryptedData, const QString& password);
/**
* @brief
* @param password
* @param salt
* @return 256
*/
static QByteArray GenerateKey(const QString& password, const QByteArray& salt);
/**
* @brief Windows 访
* @param directoryPath
* @return true false
*/
static bool SetDirectoryPermissions(const QString& directoryPath);
private:
// AES 加密块大小
static const int AES_BLOCK_SIZE = 16;
// 盐值大小
static const int SALT_SIZE = 16;
// 验证标记(用于验证密码)
static const char* MAGIC_HEADER;
};
#endif // CONFIGENCRYPTION_H