Ik heb een probleem en kom er niet uit;
(Omgeving: Visual Studio 2005 Express, Mysql 5.1)
In een tabel zit een veld van het type BLOB. Het gaat hier om een veld met ge-encrypte data (AES_ENCRYPT).
Soms moet deze data naar een andere (fysieke) database gezet worden, maar hoe lees, en schrijf, ik een veld van het type BLOB goed in en weg?
momenteel gebruik ik:
Zo lukt het me om alle bytes goed in te lezen. Wil ik deze (bijvoorbeeld) tonen (gescheden met een : voor duidelijkheid), wordt het iets van:
121:232:12:81, etc.
Nu wil ik deze BLOB in een andere query krijgen en weer wegschrijven in de database. Hoe doe ik dat?
Wat ik probeerde was het eerste te encoden naar ASCII via een System::Text::ASCIIEncoder, maar aangezien deze maar 128 bits ondersteund, wordt de helft dus vervangen door een ?. Dit gaat niet werken..
Is er geen andere manier? Of moet ik écht eerst decoden en dan weer terug encoden?
(Omgeving: Visual Studio 2005 Express, Mysql 5.1)
In een tabel zit een veld van het type BLOB. Het gaat hier om een veld met ge-encrypte data (AES_ENCRYPT).
Soms moet deze data naar een andere (fysieke) database gezet worden, maar hoe lees, en schrijf, ik een veld van het type BLOB goed in en weg?
momenteel gebruik ik:
code:
1
2
3
| long len = myReader->GetBytes(tel,0,nullptr,0,0); cli::array<unsigned char,1>^ bytearray= gcnew array<unsigned char,1>(len); myReader->GetBytes(i, 0, bytearray, 0, len); // i is de waarde van de lokatie van de kolomn |
Zo lukt het me om alle bytes goed in te lezen. Wil ik deze (bijvoorbeeld) tonen (gescheden met een : voor duidelijkheid), wordt het iets van:
121:232:12:81, etc.
Nu wil ik deze BLOB in een andere query krijgen en weer wegschrijven in de database. Hoe doe ik dat?
Wat ik probeerde was het eerste te encoden naar ASCII via een System::Text::ASCIIEncoder, maar aangezien deze maar 128 bits ondersteund, wordt de helft dus vervangen door een ?. Dit gaat niet werken..
Is er geen andere manier? Of moet ik écht eerst decoden en dan weer terug encoden?