AES加密的问题
请教一下,使用AES cbc模式加密的时候,明文和密文的长度的关系是怎么样的?
[解决办法]
长度相等!
[解决办法]
是一致的
[解决办法]
#pragma once
#include <Windows.h>
#include <WinCrypt.h>
#define MAKE_KEYLENGTH(len)\
(len<<0x10)
//AES算法封装类
class CAESAlg
{
public:
CAESAlg(void);
public:
virtual ~CAESAlg(void);
public:
// 初始化
BOOL Init(PBYTE pbPassword, DWORD dwLen, DWORD dwBlockSize=128);
// 加密函数
BOOL Encrypt(PBYTE pBuffer, DWORD dwBufferSize, LPDWORD pdwDataLen);
// 解密函数
BOOL Decrypt(PBYTE pData, LPDWORD pdwDataLen);
private:
// CSP对象的句柄
HCRYPTPROV _hCryptProc;
// 加密解密密钥
HCRYPTKEY _hKey;
// 块大小
DWORD _dwBlockSize;
};
#include "StdAfx.h"
#include "AESAlg.h"
CAESAlg::CAESAlg(void)
: _dwBlockSize(16),
_hCryptProc(NULL),
_hKey(NULL)
{
}
CAESAlg::~CAESAlg(void)
{
if(_hKey)
{
CryptDestroyKey(_hKey);
_hKey=NULL;
}
if (_hCryptProc)
{
CryptReleaseContext(_hCryptProc,0);
_hCryptProc=NULL;
}
}