AES,高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣爲全世界所使用。嚴格地說,AES和Rijndael加密法並不完全一樣(雖然在實際應用中二者可以互換),因爲Rijndael加密法可以支持更大範圍的區塊和密鑰長度:AES的區塊長度固定爲128 比特,密鑰長度則可以是128,192或256比特;而Rijndael使用的密鑰和區塊長度可以是32位的整數倍,以128位爲下限,256比特爲上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB
本代碼 採用 ECB 模式
static string EncryptionAES(const string& strSrc) //AES加密
{
char g_key[17] = "3d4ab4b0bb42dd54";
char g_iv[17] = "262ef81aafa7a095";
size_t length = strSrc.length();
if (length > 1)
{
int block_num = length / BLOCK_SIZE + 1;
//明文
char* szDataIn = new char[block_num * BLOCK_SIZE + 1];
memset(szDataIn, 0x00, block_num * BLOCK_SIZE + 1);
strcpy(szDataIn, strSrc.c_str