ChocoTiamo
Junior Member
mất 2 ngày em chưa xong đoạn này, mong các bác hướng dẫn em:
hiện em đang sử dụng protobuf và kafka, 1 phía bắn mess vào kafka và e nhận. dữ liệu đó là 1 proto đã
encrypt , em cần decrypt, key thì em có nhưng code giải mã là c++ mà e đang dùng python , nên hiện tại em chưa biết chuyển như nào. chatgpt cũng bó tay rồi. các bác xem hộ em rồi có thể giúp đỡ em với ạ.
hiện em đang sử dụng protobuf và kafka, 1 phía bắn mess vào kafka và e nhận. dữ liệu đó là 1 proto đã
encrypt , em cần decrypt, key thì em có nhưng code giải mã là c++ mà e đang dùng python , nên hiện tại em chưa biết chuyển như nào. chatgpt cũng bó tay rồi. các bác xem hộ em rồi có thể giúp đỡ em với ạ.
Code:
std::string DecryptString(std::string cipher, std::string key){
std::string recovered;
SecByteBlock new_iv(AES::BLOCKSIZE);
new_iv = SecByteBlock(reinterpret_cast<const byte*>(cipher.substr(0, AES::MIN_KEYLENGTH).data()), AES::MIN_KEYLENGTH);
try
{
CBC_Mode< AES >::Decryption d;
d.SetKeyWithIV((const byte*)key.c_str(), key.size(), new_iv);
StringSource s(cipher.substr(AES::MIN_KEYLENGTH, cipher.size()), true,
new StreamTransformationFilter(d,
new StringSink(recovered)
) // StreamTransformationFilter
); // StringSource
// std::cout << "recovered text: " << recovered << std::endl;
}
catch(const std::exception & e)
{
g_print("[ERROR]: from Decrypting");
std::cerr << e.what() << std::endl;
recovered = "";
}
return recovered;
}