在C++中實現AES加密算法,可以使用現有的密碼庫如Crypto++,也可以手動實現AES算法。
使用Crypto++庫實現AES加密算法的示例代碼如下:
#include <iostream>
#include <string>
#include <cryptopp/aes.h>
#include <cryptopp/modes.h>
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>
std::string encryptAES(const std::string& plainText, const std::string& key)
{
CryptoPP::AES::Encryption aesEncryption((byte*)key.c_str(), CryptoPP::AES::DEFAULT_KEYLENGTH);
CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption(aesEncryption, (byte*)key.c_str());
std::string cipherText;
CryptoPP::StringSource(plainText, true,
new CryptoPP::StreamTransformationFilter(cbcEncryption,
new CryptoPP::StringSink(cipherText)
)
);
return cipherText;
}
int main()
{
std::string key = "0123456789abcdef";
std::string plainText = "Hello, world!";
std::string cipherText = encryptAES(plainText, key);
std::cout << "Cipher text: " << cipherText << std::endl;
return 0;
}
這段代碼使用Crypto++庫實現了AES加密算法,將明文加密后輸出密文。在實際使用中,需要在編譯時鏈接Crypto++庫。另外也可以自行實現AES算法,但這需要更多的工作和知識。