Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#9

AW: Passwort "hard codieren": Beste Lösung?

  Alt 27. Mär 2019, 13:57
Ich benutze einen stark modifizierten Ansatz nach dem Buch: Doberenz + Kowalski: Borland Delphi 7 – Kochbuch (2003) S. 894-895.

Erstelle dazu zwei Routinen:

Function String_Verschluesseln(S: Str255): AnsiString; // Hexadezimal-String-Array Function String_Entschluesseln(SS: AnsiString): Str255; Für die Ver- und Entschlüsselung benutze einen Zufallszahlen-Generator, dessen Zufallsfolge Du selber festlegen kannst (= eindeutig reproduzierbar) z.B. über

System.RandSeed:= MeinGeheimCode; MeinGeheimCode ist üblicherweise eine LongInt-Zahl z.B.

Delphi-Quellcode:
CONST
  MeinGeheimCode:= 123456789;
Damit erstellst Du einen langen Vektor

Delphi-Quellcode:
VAR
  SuperKey: Array[1..KeySize] of Byte;
KeySize kann z.B. 1000 oder länger sein.

Diesen füllst Du mit zufälligen Bytes z. B. bei
System.RandSeed:= 0; mittels obigen Zufallszahlen-Generator und verschlüsselst Du Dein Passwort aus den Zeichen des SuperKey-Arrays bei
System.RandSeed:= MeinGeheimCode; Im Programm musst Du nur die zwei an und für sich harmlosen Konstanten speichern:

1): Das verschlüsselte Passwort als Hexadezimale String-Constante ab z. B:

Delphi-Quellcode:
Const
 MeinGeheimPasswort ='168AEEAF481AE6E2911D8E1EB1F7A9CCBCE145A2E0AFC1';
2):
Delphi-Quellcode:
CONST
  MeinGeheimCode:= 123456789;
Vorsicht! Im Programm musst Du mindestens einmal einen Zugriff auf diese Konstanten machen, damit Delphi’s Optimierer sie nicht aus dem Code rauschlöscht.

Wichtig ist beim Zufallszahlen-Generator, daß Du den kompletten Quellcode dazu hast, weil Delphi’s Zufallszahlen-Generatoren sich manchmal von Version zu Version sich unterscheiden und daher nicht kompatibel (reproduzierbar) sind!
Gute Zufallszahlen-Generatoren, aber auch komplette Verschlüsselungsroutinen findest Du z.B. bei

https://sslsites.de/wolfgang-ehrhardt.de/index_de.html

Gruß, Andreas
  Mit Zitat antworten Zitat