MSXML
-
Hallo zusammen,
ich bin gerade dabei, in meinem Projekt das Lesen und Schreiben einer XML-Datei auf MSXML umzustellen. Nun bin ich auf ein Problem gestossen. In meinem XML-File sind User und Passwort gespeichert, das Passwort allerdings nicht im Klartext, sondern verschlüsselt (mit http://www.lomont.org/Software/Misc/AES/AES.php).
In vereinfachter Form sieht das xml File folgendermassen aus:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <TestConfigChange xmlns="http://tempuri.org/TestConfigChange.xsd"> <Daten d2p1:User="Name" d2p1:Password="`6À…›Tfî:ž)c×—ýýýý««««««««îþîþ" xmlns:d2p1="http://tempuri.org/TestConfigChange.xsd" /> </TestConfigChange>
Nun versuche ich mit MSXML das file einzulesen, das Ganze scheitert aber wohl an den kryptischen Zeichen, welche mir der Algo liefert.
Hier noch in Kurzfassung mein Versuch, das File zu laden:
MSXML2::IXMLDOMDocumentPtr m_xmldoc; m_xmldoc.CreateInstance(MSXML2::CLSID_DOMDocument); _variant_t v("TestConfigChange.xml")); m_xmldoc->put_async(VARIANT_FALSE); VARIANT_BOOL success = m_xmldoc->load(v); //-1 ist erfolgreich
Ändere ich das Passwort in irgendwas "Normales" klappts wunderbar. Was kann man dagegen tun ? Das Projekt ist momentan noch c++/cli, deshalb wird bisher noch System::Data::DataSet verwendet, dort klappt es auch verschlüsselt, aber da .Net sonst nirgends verwendet wird, wollte ich auf MSXML umsteigen. Ich hoffe, irgendjemand weiss Rat.
MfG
-
Dann sind diese "kryptischen Zeichen" wohl kein gültiges UTF-8. Wie kommst du überhaupt darauf, dass man die Ausgabe von AES einfach als XML-Attributwert verwenden könnte? Du wirst die Daten wohl anders kodieren müssen, zum Beispiel mit Base64.
-
@TyRoXx:
Ehrlich gesagt, hab ich mir gar keine grossen Gedanken darüber gemacht, daß ich die Ausgabe von AES nicht als XML-Attribut setzen könnte. Spricht da generell was dagegen ? Der Tipp mit base64 war auf jedem Fall super, ich denke ich werde damit weiterkommen. DankeMfG