2 Stimmen

Baugruppe übertragen oder serialisieren

Ich brauche eine Möglichkeit, eine kompilierte Baugruppe vom Client zum Server zu übertragen und in der Lage zu sein, diese in der Datenbank oder in einer Datei so zu speichern, dass ich diese Bytes auf der "To"-Seite erfassen und die Baugruppe erneut laden kann. Gibt es eine Möglichkeit, dies zu tun. Zur Verdeutlichung: Ich habe eine Winforms-Anwendung, die Code generiert und ihn auf der Grundlage einiger Metadaten kompiliert. Nun muss ich in der Lage sein, diese auf eine Website zu übertragen und sie irgendwie zu speichern, aber ich möchte keine DLL (weil sie dekompiliert werden kann). Ich würde dann ein "Server"-Programm auf der anderen Seite haben, das dies in den Speicher lädt. Ich könnte nur den verschlüsselten Quellcode übertragen, aber ich dachte, ich könnte nur die kompilierte Assembly übertragen.

Mehr Informationen: Auch auf der "von"-Seite wird keine Datei erzeugt, sondern im Speicher kompiliert, so dass die physische DLL nie erstellt wird.

2voto

invert Punkte 1986

Es klingt, als wollten Sie Ihre kompilierte Baugruppe serialisieren aus dem bzw. in den Speicher und übertragen diese an den Server, wo sie wieder in eine Assembly deserialisiert wird.

1voto

cjk Punkte 44394

Wie wäre es, wenn Sie eine verschlüsselte DLL übertragen?

1voto

Kent Boogaart Punkte 170094

Sie könnten die Kryptographie mit öffentlichem Schlüssel verwenden.

Die Client-Seite würde den öffentlichen Schlüssel verwenden, um die Bytes, aus denen die Baugruppe besteht, zu verschlüsseln. Diese Bytes werden in der Datenbank gespeichert - völlig nutzlos für jeden, der nicht im Besitz des privaten Schlüssels ist. Der Server kann dann diese Bytes einlesen, sie mit dem privaten Schlüssel entschlüsseln und die Baugruppe aus dem entschlüsselten Bytestrom wiederherstellen.

Da Sie die Kryptographie mit öffentlichem Schlüssel verwenden, ist Ihr Geheimnis (der private Schlüssel) auch dann sicher, wenn der Client kompromittiert wird, da er auf dem Server gespeichert ist.

Um mehr über diese Technik zu erfahren, empfehle ich die Lektüre este .

1voto

Jimmie Clark Punkte 1858

Ich schlage vor, Sie verwenden einen Binary Serializer und leiten diesen Stream in einen CryptoStream, der für ein bestimmtes Verschlüsselungsmodell eingerichtet werden kann. Dann nehmen Sie den Ausgabestrom und dump, dass zu Ihrem Standort. Am Ende des laufenden Prozesses entschlüsseln Sie ihn und deserialisieren ihn. Wenn Sie möchten, können Sie auch einen DeflateStream verwenden, wenn Ihre Assembly groß genug ist, um Platz zu sparen.

Ich hoffe, das hilft. Wenn Sie Beispiele wünschen, lassen Sie es mich wissen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X