Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TIniFile ver- /entschlüsseln (https://www.delphipraxis.net/48524-tinifile-ver-entschluesseln.html)

100nF 26. Jun 2005 20:17


TIniFile ver- /entschlüsseln
 
hallo zusammen,

ich will passwörter in einer ini-datei abspeichern, die verschlüsselt wird.

ich habe mir das etwa so vorgestellt:
- programm-start: ini-datei entschlüsseln und in stream speichern
- stream-ini auslesen/speichern
- stream-ini auslesen/speichern
- usw...
- programm-ende: stream-ini verschlüsseln und abspeichern

nun ist das problem ja, dass man eine ini-datei IMHO nicht aus einem stream auslesen kann.

was würdet ihr vorschlagen?

MFG
urbanbruhin

P.S. ich habe schon probiert, die ini-datei bei jedem gebrauch entschlüsseln/laden/auslesen/verschlüsseln/speichern.
allerdings hats irgendwie nicht funktioniert, und es ist auch sehr aufwendig.

SirThornberry 26. Jun 2005 20:23

Re: TIniFile ver- /entschlüsseln
 
es heißt dann nicht mehr TIniFile sondern TMemIni oder ähnlich.

jfheins 26. Jun 2005 20:25

Re: TIniFile ver- /entschlüsseln
 
Sonst verschlüssele doch nicht die ganze ini-File, sondern nur die passwörter ...

Wenn da ein paar fiese Zeichen bei der Verschlüsselung rauskommen, nochmal base64-encodieren und speichern ... wa o ist das Problem ?

Zacherl 26. Jun 2005 20:27

Re: TIniFile ver- /entschlüsseln
 
Hallo,
oder einfach nach jedem Zugriff die Ini wieder freigeben und verschlüsseln.
Und bei vor jedem Zugriff die Datei entschlüsseln und die Ini wieder erzeugen!

Florian

100nF 26. Jun 2005 20:32

Re: TIniFile ver- /entschlüsseln
 
Zitat:

es heißt dann nicht mehr TIniFile sondern TMemIni oder ähnlich.
ja, hab ich mal irgendwo gelesen. werd mal schauen ob ich noch mehr dazu finde...

Zitat:

Sonst verschlüssele doch nicht die ganze ini-File, sondern nur die passwörter
die passwörter sind eben anderen strings (usernamen) zugeordnet. da geht es am einfachsten mit einer ini-datei...

Zitat:

oder einfach nach jedem Zugriff die Ini wieder freigeben und verschlüsseln.
Und bei vor jedem Zugriff die Datei entschlüsseln und die Ini wieder erzeugen!
erster beitrag:
Zitat:

P.S. ich habe schon probiert, die ini-datei bei jedem gebrauch entschlüsseln/laden/auslesen/verschlüsseln/speichern.
allerdings hats irgendwie nicht funktioniert, und es ist auch sehr aufwendig
danke schonmal für die antworten!

MFG
urbanbruhin

BenjaminH 26. Jun 2005 20:35

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Zitat von urbanbruhin
Zitat:

Sonst verschlüssele doch nicht die ganze ini-File, sondern nur die passwörter
die passwörter sind eben anderen strings (usernamen) zugeordnet. da geht es am einfachsten mit einer ini-datei...

Du kannst ja trotzdem eine Ini verwenden, und statt
Code:
PasswortUser1=passwort
Code:
PasswortUser1=jkfsanffas
verwenden

Speedmaster 26. Jun 2005 20:35

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Zitat von SirThornberry
es heißt dann nicht mehr TIniFile sondern TMemIni oder ähnlich.

TMemIni ist dazu da damit das Programm nicht ständig auf die Platte zugreift, sondern wartet bis du den Befehl zum schreiben gibst.

MrKnogge 26. Jun 2005 20:37

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Zitat von urbanbruhin
Zitat:

Sonst verschlüssele doch nicht die ganze ini-File, sondern nur die passwörter
die passwörter sind eben anderen strings (usernamen) zugeordnet. da geht es am einfachsten mit einer ini-datei...

er meint, die passwörter verschlüsseln und die verschlüsselten passwörter in die ini speichern.

Robert_G 26. Jun 2005 20:37

Re: TIniFile ver- /entschlüsseln
 
Was so eine kurze suche nach [cl]Ini verschlüsseln[/cl] in der CodeLib doch so alles Tage fördert... :zwinker:
Naja, eigentlich nur eins: Und zwar die ziemlich coole Lösung von Maximov um einen Stream zu dekorieren, damit er on-the-fly per DEC zerhackstückelt werden kann. :)

100nF 26. Jun 2005 21:29

Re: TIniFile ver- /entschlüsseln
 
hi,

erstmal vielen dank für die antworten!!

Zitat:

er meint, die passwörter verschlüsseln und die verschlüsselten passwörter in die ini speichern.
ach soo, na dann siehts anders aus...

ich werd mal schauen was ich machen kann..

werd mich wieder melden

Luckie 26. Jun 2005 23:04

Re: TIniFile ver- /entschlüsseln
 
Ich würde nur die Passwörter als Hashes in der Ini-Datei ablegen.

100nF 27. Jun 2005 07:22

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Ich würde nur die Passwörter als Hashes in der Ini-Datei ablegen.
ist das auch sicher genug?

ich werd mal ein bisschen weiter suchen nach lösungen...

MrKnogge 27. Jun 2005 10:44

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Zitat von urbanbruhin
Zitat:

Ich würde nur die Passwörter als Hashes in der Ini-Datei ablegen.
ist das auch sicher genug?

ich werd mal ein bisschen weiter suchen nach lösungen...

Das ist eigentlich das sicherste !
Online dürfen passwörter sogar nur als hashes gespeichert werden .

Robert_G 27. Jun 2005 12:46

Re: TIniFile ver- /entschlüsseln
 
Zitat:

Zitat von MrKnogge
Zitat:

Zitat von urbanbruhin
Zitat:

Ich würde nur die Passwörter als Hashes in der Ini-Datei ablegen.
...

Das ist eigentlich das sicherste !
Online dürfen passwörter sogar nur als hashes gespeichert werden .

Das ist in etwa so sicher als ob man die Passwörter als plain text reinschreibt!
Kleines Beispiel:
X will etwas im Context und somit mit den Rechten von Y machen.
X muss jetzt nur noch Y's passwort hash kopieren und irgendwo sichern. Jetzt überschreibt er ihn mit seinem Passwort hash.
Jetzt kann er sich als Y mit_seinem_ Passwort anmelden, alles ausspionieren/zersägen und danach den alten Hash wieder eintragen.
Y bekommt davon nix mit, schließlich funktioniert sein Passwort danach wie vorher. Nur ist er jetzt offiziell der Bösewicht...
Hashes sind nur dann vertrauenswürdig, wenn man verhindern kann, dass irgendeiner daran rumspielen kann.

Jeder Oracle DBA kann dir das bestätigen. Ich weiß nicht wie oft ich schon auf wievielen Systemen einen "System" user einer 3rd-Party Software "highjacked" habe um explizite Berechtigungen, private Jobs oder anderes zu bearbeiten...
Die coolste und sauberste Lösung (IMHO), ist die die ich oben bereits genannt habe. Entweder du zerhackstückelst es richtig oder du lässt es bleiben. Hashes bringen hier rein gar nüschts.

100nF 27. Jun 2005 15:44

Re: TIniFile ver- /entschlüsseln
 
aha. :shock:

ich hab da auch mal was gefunden.
Delphi-Quellcode:
function TForm1.XORString(Text, Schluessel: string): string;
var i, q: integer;
begin
  q := 1;
  for i := 1 to Length(Text) do
  begin
    Text[i] := Chr(Ord(Text[i]) xor Ord(Schluessel[q]));
    inc(q);
    if q > length(Schluessel) then q := 1;
    Application.ProcessMessages;
  end;
  Result := Text;
end;
Delphi-Quellcode:
repeat
    Memo3.Text := RandomString(Length(Memo1.Text));
    Memo2.Text := XORString(Memo1.Text, Memo3.Text);
    Application.ProcessMessages;
    Memo2.Lines.SaveToFile(datei);
    Memo3.Lines.SaveToFile(passwort);
  until (XORString(Memo2.Text, Memo3.Text)) = Memo1.Text;
wie sicher ist dieser code, falls ihn jemand kennt?
ich habs jetzt mal damit gemacht, aber nicht mehr mit einer ini, sondern eine textdatei die ähnlich wie eine ini aufgebaut ist.
funktioniert auch schon fast, aber noch nicht ganz. wenn ich das programm mehrmals schnell nacheinander öffne, beende, öffne, beende..., wird die datei plötzlich falsch entschlüsselt(oder verschlüsselt?)... woran könnte das liegen?

P.S. der code habe ich hier im forum gefunden, das programm heisst "Cryptor"

100nF 29. Jun 2005 11:26

Re: TIniFile ver- /entschlüsseln
 
*pusch*

hat keiner eine idee??

...


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz