AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Passwortverschlüsselung PBKDF2

Ein Thema von claudine99 · begonnen am 8. Apr 2013 · letzter Beitrag vom 9. Apr 2013
Antwort Antwort
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#1

Passwortverschlüsselung PBKDF2

  Alt 8. Apr 2013, 13:30
Hallo,
in einem Programm (Delphi 2009) soll eine Userverwaltung implementiert werden, bei der die Passwörter PBKDF2, mindestens jedoch SHA1 verschlüsselt an eine MS SQL Datenbank übergeben werden sollen.
Hat jemand dazu vielleicht eine Idee? Gibt es dafür in Delhi eine extra Klasse?

VG
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Passwortverschlüsselung PBKDF2

  Alt 8. Apr 2013, 13:33
Wie wäre es wenn du nur die gesalzene Hashes an die DB überträgst?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Passwortverschlüsselung PBKDF2

  Alt 8. Apr 2013, 14:01
Wie wäre es wenn du nur die gesalzene Hashes an die DB überträgst?
Hashen ist nicht genug. Hier sogar was mit "Experiment" und anderen Referenzen.

Mit bcrypt oder PBKDF2 bist du auf dem richtigen Weg. Es scheint sogar eine Delphi-Implementation für bcrypt zu geben.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Passwortverschlüsselung PBKDF2

  Alt 8. Apr 2013, 14:08
Na ja PBKDF2 ist ja hashen + Salt.

Mir ging es ja eher um den Teil:

Zitat:
mindestens jedoch SHA1 verschlüsselt ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Passwortverschlüsselung PBKDF2

  Alt 8. Apr 2013, 14:19
Die Unit enthält MD4, MD5 und Sha1.
Angehängte Dateien
Dateityp: pas MD5windows.pas (3,3 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Passwortverschlüsselung PBKDF2

  Alt 9. Apr 2013, 11:49
sorry für das späte Feedback...
da ich noch nie etwas mit Verschlüsselung zu tun hatte, ist das gerade etwas verwirrend für mich

Ich in einer 'Unit_User' ein Editfeld 'edt_1_password'. In dieses kann der admin ein PW eingeben. Dieses soll verschlüsselt in der DB Tbl_User, column PW gespeichert werden.

im Moment sieht es unverschlüsselt so aus:

Delphi-Quellcode:
procedure TForm_new_user.SpeedButton1Click(Sender: TObject);
var
 cFirstname, cLastname, cUsername, cSQL: String;
 cPassword, cEdit: String;
begin
  cFirstname := Trim(edt_1_firstname.Text);
  cLastname := Trim(edt_1_lastname.Text);
  cUsername := Trim(edt_1_username.Text);
  cPassword := (Trim(edt_1_password.Text));


    // INSERT, wenn nötig (fragen ob schon ein Satz)

     cSQL := 'SELECT * FROM dbo.tbl_User WHERE Username = ' + CH + cUsername + CH + ' ' +
             ' AND [Lastname] = ' + CH + cLastname + CH + '';


    DM.Query1.Close;
    DM.Query1.SQL.Text := cSQL;
    DM.Query1.Open;
    if DM.Query1.RecordCount = 0 then
    begin
      // kein satz da --> INSERT
      cSQL := 'INSERT INTO dbo.tbl_User ' +
              '([Firstname], [Lastname], [Username], [Password], [Ins_Date],[Ins_User]) VALUES' +
              '( ' + CH + cFirstname + CH + ', ' +
              CH + cLastname + CH + ', ' +
              CH + cUsername + CH + ', ' +
              CH + cPassword + CH + ', '  +
              CH + FormatDateTime('mm-dd-yyyy', now) + CH + ', ' +
              CH + Form1.cuUsername + CH + ' ' +
               ' )';


      DM.Query1.Close;
      Application.ProcessMessages;
    end
    else
    begin
      Showmessage('Username already exists!')
    end;

    DM.Query1.Close;


end;
Loggt sich der User nun mit Username und PW (edt_Passwort) und Klick auf 'Login' ein, müsste doch nur das verschlüsselte PW abgefragt werden.
Wäre super, wenn mich hier jemand 'erhellen' könnte....
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Passwortverschlüsselung PBKDF2

  Alt 9. Apr 2013, 12:41
da ich noch nie etwas mit Verschlüsselung zu tun hatte, ist das gerade etwas verwirrend für mich
Da du immer wieder "Verschlüsselung" sagst:
Passwörter werden in der Regel nicht verschlüsselt, sondern gehasht. Praktisch bedeutet dies, das die Passwörter nicht wieder "entschlüsselt" werden können.

Trotzdem können solche Passwörter mit etwas Aufwand wiedererstellt werden, in dem man wahrscheinliche/übliche Passworte hasht und mit den gespeicherten Hashes verglichen werden (Stichwort: Wörterbuchattacke). bcrypt und PBKDF2 dienen dazu, das "Hashen" so zu verlangsamen, dass sich diese Attacke nicht mehr lohnt.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Passwortverschlüsselung PBKDF2

  Alt 9. Apr 2013, 13:05
Gut, schon dazu gelernt, dann also 'gehsht'. Eine Entschlüsselung braue ich ja nicht, da beim Erstellen/Speichern und beim Login das eingegebene PW beim Senden zur DB auch gehasht werden kann.
  Mit Zitat antworten Zitat
claudine99

Registriert seit: 9. Mär 2012
20 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Passwortverschlüsselung PBKDF2

  Alt 9. Apr 2013, 13:10
Wie wäre es wenn du nur die gesalzene Hashes an die DB überträgst?
Hashen ist nicht genug. Hier sogar was mit "Experiment" und anderen Referenzen.

Mit bcrypt oder PBKDF2 bist du auf dem richtigen Weg. Es scheint sogar eine Delphi-Implementation für bcrypt zu geben.
wenn ich bcrypt verwende, sprich
cPassword: String;
begin
cPassword := TBCrypt.HashPassword(Trim(edt_1_password.Text));
könnte das funktionieren und was habe ich dann zusätzlich bei 'uses' einzufügen?

Sorry, aber wie gesagt, das Thema ist Neuland für mich...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz