Strings nur zur Laufzeit verschlüsseln



  • Hallo,

    wie kann ich Strings zur Entwurfszeit leserlich belassen und zur Laufzeit verschlüsseln ?

    Also, ich habe zwei AnsiString Arrays mit Personalnummern und den zugehörigen Namen. Die Namen werden über einen UserIndex mit den Personalnummer verknüpft.
    Jetzt möchte ich zur Entwurfszeit alles klar leserlich haben, und im ausführbaren Programm sollen die AnsiStrings verschlüsselt sein. Damit möchte ich verhindern, dass keiner auf einfache Art und Weise per Hex-Editor die Personalnummer auslesen bzw. verändern kann.

    Wie kann man so etwas realisieren ?

    Vielen Dank für eure Tips und Gruß

    WoWe



  • WoWe schrieb:

    Wie kann man so etwas realisieren ?

    Solche Daten codiert man grundsätzlich sowieso nicht hart in eine Anwendung.

    Ansonsten: unterhalte zwei verschiedene Versionen von Datenstamm. Die chiffrierte und für Debugzwecke die klartext-version. Mittels präprozessoranweisungen kannst du dann beeinflussen welchen Datenstamm das Programm nimmt.

    -junix



  • junix schrieb:

    Solche Daten codiert man grundsätzlich sowieso nicht hart in eine Anwendung.

    Hallo junix,

    danke für deine Hilfe, aber kannst du mir das etwas näher erläutern.

    Die andere Variante heist dann aber, ich muss 2 Listen pflegen.



  • WoWe schrieb:

    junix schrieb:

    Solche Daten codiert man grundsätzlich sowieso nicht hart in eine Anwendung.

    danke für deine Hilfe, aber kannst du mir das etwas näher erläutern.

    Im Zusammenhang mit deinem Quote aus meinem Posting kann ich da nix finden, was noch erläuterung bräuchte, was meinst du?

    WoWe schrieb:

    Die andere Variante heisst dann aber, ich muss 2 Listen pflegen.

    Mmmh, ja... ausser du baust noch ne kleine chiffrier-applikation, welche die klartext liste entsprechend verschlüsselt.

    -junix



  • junix schrieb:

    Im Zusammenhang mit deinem Quote aus meinem Posting kann ich da nix finden, was noch erläuterung bräuchte, was meinst du?

    Wie würdest du da vorgehen ? Die Daten in eine DLL packen oder über eine externe StringList (*.dat) ? Aber das sind nicht viele Daten und deswegen eine separate Datei ?!



  • Sag mal zitierst du absichtlich immer an dem vorbei, worauf du dich beziehst?

    WoWe schrieb:

    Die Daten in eine DLL packen oder über eine externe StringList (*.dat) ?

    Wieso eine DLL?

    Eine externe Datei würde ich da empfehlen. Irgend ein binäres format hald oder ein Ini-File mit Binär-werten... So dass du den verschlüsselten Text (der dann eher ein Binärstream ist) speichern kannst.

    WoWe schrieb:

    Aber das sind nicht viele Daten und deswegen eine separate Datei ?!

    Seit wann fällt man solche grundlegenden Design-Entscheidungen alleine anhand der Datenmenge? User-Daten gehören einfach nicht hardcoded.

    Codierst du diese Personaldaten hart in deine Anwendung bedeutet das:

    • Kommt nur eine Person dazu, oder fliegt eine Person raus, so musst du das Programm neu compilieren und überall die Executable austauschen.
    • Du hast keine Möglichkeit, die Strings zu chiffrieren ohne grosse Handstände zu machen und die verschlüsselten Strings direkt als Hex-Werte einzutragen.
    • Dein Programm schleppt unnötige Daten mit sich rum und wird somit grösser
    • ...

    -junix



  • Ok, ok, überzeugt. Danke für die Argumente.


Anmelden zum Antworten