Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Passwort verschlüsseln, aber wie? (https://www.delphipraxis.net/135347-passwort-verschluesseln-aber-wie.html)

Woyzeck 10. Jun 2009 12:13

Re: Passwort verschlüsseln, aber wie?
 
ciphers dagegen schon?

Benötigt man trotzdem beides? Auf diversen Seiten habe ich gelesen, dass einige zuerst Blowfish und dann SHA1 anwenden.

Blowfish ist ein Cipher und SHA1 ein Hash-algo. Seh ich das richtig?
Ist das dann nur zur weiteren Erhöhung der Sicherheit gemacht worden, dass beides verwendet wird?


Für das Projekt ist jetzt nicht die allerhöchste Sicherheitsstufe notwendig, die Daten die damit geschützt werden sind jetzt nicht so wichtig, aber ich würde gerne mal eine "seriöse" Verschlüsselung verwenden und nicht etwas simples wie Caesar und co.

Reicht es dann aus nur einen Cipher oder nur einen Hash zu benutzen?

mkinzler 10. Jun 2009 12:17

Re: Passwort verschlüsseln, aber wie?
 
SHA1 sollte reichen. du musst ja clientseitig das selbe machen, was der server macht:
Du hasht das eingegebene Passwort und sendest diesen an den Server
Dieser vergleicht den Hash mit dem hinterlegten Hash. Diese stimmen natürlich nur dann überein, wenn beide den selben Algorithmus verwenden.

guidok 10. Jun 2009 12:20

Re: Passwort verschlüsseln, aber wie?
 
In dec sind 26 verschiedene Hash-Algorithmen und 30 Verschlüsselungsalgorithmen implementiert.

Für deine Anwendung ist ein Hash vermutlich völlig ausreichend - such dir einen von den 26 aus.

Woyzeck 10. Jun 2009 12:21

Re: Passwort verschlüsseln, aber wie?
 
Ok,

also dann will ich meinen string mit SHA1 hashen. Wie gehe ich dazu vor? Benötige ich nur die Hash-Unit?

Welche Funktionen,Prozeduren muss ich mit welchen Parametern aufrufen, damit ich am Ende meinen Hash habe?


EDIT: Ich glaube, ich habe durch Probieren soeben den Stein der Weisen gefunden. Danke.

Woyzeck 10. Jun 2009 19:35

Re: Passwort verschlüsseln, aber wie?
 
Also wie gesagt: Mein Passwort wird jetzt mit SHA1 gehasht und in einer DB abgelegt. Das klappt bis jetzt wunderbar.

Jetzt ist mir ein weiteres Problemchen klar geworden. Und zwar muss ich die Zugangsdaten zum Server in einer Datei speichern. Das funktioniert soweit auch, allerdings ist es nicht besonders ratsam das Zugangspassword in der .ini unverschlüsselt zu speichern. Ich brauche nun also einen Vershclüsselungsalgorithmus, der auch wieder entschlüsselt werden kann.

Ich dachte mir, dass geht mit blowfish jetzt bestimmt ähnlich wie mit SHA1, aber leider ist dem nicht so. Ich bräuchte mal eine Erklärung der Prozeduren init und Encode/Decode der blowfish-Klasse.

Was bedeuten die einzelnen Parameter und was muss ich da eintragen?

MfG Woyzeck

Woyzeck 11. Jun 2009 11:48

Re: Passwort verschlüsseln, aber wie?
 
Ich habe beim Stöbern im Forum verschiedene Beiträge zu den Ciphers aus der DEC gelesen. Häufig gab es dabei Funktionen wie "EncodeString". Bsp.: Beitrag aus Forum

Gibt es diese Funktion in v5.2 nicht mehr, oder bin ich nur zu doof sie zu finden?

Ich verzweifel so langsam an dem Problem, weil ich irgendwie nichts passendes finde. Helft mir bitte mal auf die Sprünge!

himitsu 11. Jun 2009 12:16

Re: Passwort verschlüsseln, aber wie?
 
kann sein, daß dieser "Befehl" noch aus Version 3 stammt und jetzt anders heißt, bzw. anders implementiert ist.

eventuell findest du ja in neueren Beiträgen etwas dazu
oder auch in diesem Thread, wo es um die letzte größere Umstellung ging:
http://www.delphipraxis.net/internal...t.php?t=157795


[add]
ich glaub da gibt's interessante Threads :angel:
Hier im Forum suchenDEC EncodeString
> http://www.delphipraxis.net/internal...c+encodestring

Woyzeck 11. Jun 2009 13:36

Re: Passwort verschlüsseln, aber wie?
 
Delphi-Quellcode:
function TfrmLogin.Encode(Was: string):String;
begin
  Was:=Was+Salt;
with DECCipher.TCipher_Blowfish.Create do
  try
    Init('Passwort');
    Result := EncodeBinary(Was, TFormat_HEX);
  finally
    Free;
  end;

end;

Ahh, ich bin glaube ich fündig geworden!

Also wenn ich das richtig sehe, kann ich hiermit meinen String strText verschlüsseln. Entsprechend müsste ich ihn dann mit DecodeBinary wieder entschlüsseln können.

Aber wie bekomme ich beim Decodieren das Salt-Ende wieder "ab"?

Delphi-Quellcode:
function TfrmLogin.Decode(Was: string):String;
begin
with DECCipher.TCipher_Blowfish.Create do
  try
    Init('Passwort');
    Result := DecodeBinary(Was, TFormat_HEX);
  finally
    Free;
  end;
    Result:=Result; //hier soll die Salt-Konstante entfernt werden
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.
Seite 2 von 2     12   

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