J'essaie de déchiffrer une chaîne qui est chiffrée à l'aide d'AES en CBC_Mode. Je vois des données correctes dans le résultat mais elles sont polluées par des octets de remplissage. Ma première tentative a été d'utiliser un redirecteur comme suggéré dans ce fil :
std::string result_;
CryptoPP::CBC_Mode<CryptoPP::AES>::Decryption decrypt_;
...
void decrypt(std::string cipheredText)
{
try
{
CryptoPP::MeterFilter meter(new CryptoPP::StringSink(result_));
CryptoPP::StringSource pipeline(
cipheredText,
true,
new CryptoPP::StreamTransformationFilter(
decrypt_,
new CryptoPP::Redirector(meter),
CryptoPP::StreamTransformationFilter::PKCS_PADDING));
}
catch (CryptoPP::Exception&)
{ }
}
Mais je reçois toujours ces octets de remplissage. Qu'est-ce que je fais mal? Quelqu'un peut-il m'aider s'il vous plait ?
OK, j'ai finalement trouvé mon erreur stupide. Cela n'a rien à voir avec le remplissage d'octets. La raison de ces octets supplémentaires dans mon résultat de déchiffrement est simplement que StringSource ajoute les octets résultants à la destination. J'ai oublié d'effacer ma variable de destination et ça a grandi...
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots