![]() |
Passwortverschlüsselung PBKDF2
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 |
AW: Passwortverschlüsselung PBKDF2
Wie wäre es wenn du nur die gesalzene Hashes an die DB überträgst?
|
AW: Passwortverschlüsselung PBKDF2
Zitat:
![]() ![]() ![]() Mit bcrypt oder PBKDF2 bist du auf dem richtigen Weg. Es scheint sogar eine Delphi-Implementation für ![]() |
AW: Passwortverschlüsselung PBKDF2
Zitat:
Mir ging es ja eher um den Teil: Zitat:
|
AW: Passwortverschlüsselung PBKDF2
Liste der Anhänge anzeigen (Anzahl: 1)
Die Unit enthält MD4, MD5 und Sha1.
|
AW: Passwortverschlüsselung PBKDF2
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 :shock: 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:
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.
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; Wäre super, wenn mich hier jemand 'erhellen' könnte.... |
AW: Passwortverschlüsselung PBKDF2
Zitat:
Passwörter werden in der Regel nicht verschlüsselt, sondern ![]() 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. |
AW: Passwortverschlüsselung PBKDF2
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.
|
AW: Passwortverschlüsselung PBKDF2
Zitat:
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... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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