Hallo zusammen!
Ich habe eine eigens geschriebene Crypto-Klasse, die Funktionen anbietet, um Strings oder auch spezielle Objekte zu ver- und entschlüsseln.
Um das zu bewerkstelligen, muss ich zu Beginn in dieser Klasse 2 Keys festlegen, womit das Ganze durchgeführt wird. Danach kann zum Beispiel ein String nur entschlüsselt werden, wenn dafür genau die gleichen Schlüssel auch für die Verschlüsselung genutzt wurden.
Diese Schlüssel sind einfache Byte-Arrays.
Gibt es eine Möglichkeit diese Schlüssel im Code zu verbergen oder den Zugriff zu verhindern? Sie müssten auch nicht unbedingt im Code bleiben. Sie könnten auch beispielsweise in einer anderen Datei abgelegt werden, wenn das die Sache einfacher machen würde.
So ein Obfuscator (schreibt man das so?) käme für mich nicht in Frage, da ich die Klasse in verschiedenen Projekten immer wieder verwenden will. Und wenn dann der Funktionsname plötzlich nicht mehr "decodeString()" ist, sondern "sdjkh()" (oder ähnlich) dann kann ich selbst nichts mehr damit anfangen.
Weiterhin denke ich auch an solche Reflector-Tools, womit sich der Code aus einer DLL wieder sichtbar machen lässt. Damit könnte so ein Schlüssel natürlich sehr schnell herausgefunden werden. Das will ich auch verhindern, daher sollten sie vielleicht eher ausgelagert werden, aber ich weiß nicht wohin.
Hatte jemand vielleicht schon mal so ein Problem, oder generell ein Idee?
Ich habe eine eigens geschriebene Crypto-Klasse, die Funktionen anbietet, um Strings oder auch spezielle Objekte zu ver- und entschlüsseln.
Um das zu bewerkstelligen, muss ich zu Beginn in dieser Klasse 2 Keys festlegen, womit das Ganze durchgeführt wird. Danach kann zum Beispiel ein String nur entschlüsselt werden, wenn dafür genau die gleichen Schlüssel auch für die Verschlüsselung genutzt wurden.
Diese Schlüssel sind einfache Byte-Arrays.
Gibt es eine Möglichkeit diese Schlüssel im Code zu verbergen oder den Zugriff zu verhindern? Sie müssten auch nicht unbedingt im Code bleiben. Sie könnten auch beispielsweise in einer anderen Datei abgelegt werden, wenn das die Sache einfacher machen würde.
So ein Obfuscator (schreibt man das so?) käme für mich nicht in Frage, da ich die Klasse in verschiedenen Projekten immer wieder verwenden will. Und wenn dann der Funktionsname plötzlich nicht mehr "decodeString()" ist, sondern "sdjkh()" (oder ähnlich) dann kann ich selbst nichts mehr damit anfangen.
Weiterhin denke ich auch an solche Reflector-Tools, womit sich der Code aus einer DLL wieder sichtbar machen lässt. Damit könnte so ein Schlüssel natürlich sehr schnell herausgefunden werden. Das will ich auch verhindern, daher sollten sie vielleicht eher ausgelagert werden, aber ich weiß nicht wohin.
Hatte jemand vielleicht schon mal so ein Problem, oder generell ein Idee?
Comment