AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Passworthash - einfach und schnell
Thema durchsuchen
Ansicht
Themen-Optionen

Passworthash - einfach und schnell

Ein Thema von SonicTTH · begonnen am 9. Feb 2010 · letzter Beitrag vom 9. Feb 2010
Antwort Antwort
Seite 1 von 2  1 2      
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#1

Passworthash - einfach und schnell

  Alt 9. Feb 2010, 11:46
Hallo,

Ich würde gerne wissen wie man am besten mit einer einzigen funktion einen passworthash kriegen könnte.

So z.b. MakeHash(Passwort):String ; <- Wobei der String dann der hash ist der raus kommt.

Ich hab mir schon vor einer weile mal die DCPCpiher + Hashes Komponenten geladen und damit verschiedene dinge versucht, allerdings ist die dokumentation dazu sehr schlecht, denn wenn ich die anweisungen befolge wie ich mir einen hash generieren kann bekomm ich da am ende immer nur irgendwelche zahlen raus, die zwar bei jeder generierung gleich sind, aber für mich KEINEN hash darstellen.

was ich rauskriege: 1235412452123123412231234212312312324232122
was ich denke das ein hash sein sollte: fdgfgsjdfgkhdgfr67df6gdf67sg76dfs87g687dfs6g7d6

Die zahlen die dabei rauskommen sind immer einzelne zahlen zwischen 0 und 255 und werden an einen string gereiht.

Also: Was mache ich falsch, bzw wie könnte ich einfacher an einen hash kommen?
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 11:56
Ich glaube du verstehst hier was falsch

ein Hash ist eine Zahl.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 11:59
hallo SonicTTH

versuch doch mal Asserbads MD5. Ich komme ganz gut damit zurecht.

Was Du daraus benötigtst ist

MD5_Hash_OverBuffer(buf: Pointer; cblen: DWORD): TMD5digest;
MD5_Hash2String(MD5: TMD5Digest): String;

vielleicht gibt es bessere Umsetzungen, aber für meine Anforderungen reicht es.
Und es ist einfach zu handhaben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 12:09
Heiß: Eine Hashfunktion berechnet grundsätzlich erstmal eine Zahl oder eine Reihe von Zahlen.

Und diese Zahl(en) kann man dann in "irgendeinem" anderem Format als String darstellen.
Oftmals wird dafür die Hexadezimale oder eine Base64-Darstellung gewählt.
$2B or not $2B
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#5

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 12:15
Ich kenne mich mit pointern nicht so aus deshalb wäre ich se
hr dankbar wenn du mir erklären könntest wie ich aus dem klartext passwort als string den hash mache mithilfe der prozeduren die du mir da gezeigt hast

soviel ist mir schonmal klar:

Was hier rauskommt:
MD5_Hash_OverBuffer(buf: Pointer; cblen: DWORD): TMD5digest;

Also das TMD5digest, kommt hier rein:
MD5_Hash2String(MD5: TMD5Digest): String;
Und da kommt dann der hash raus, richtig?

Aber was ist buf: Pointer, und cblen? Das sagt mir alles nichts

Danke schonmal für die schnelle antwort und wenn gleich noch eine kommt nochmal danke
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 12:20
Hai,

es sollte eigentlich so gehen:
Delphi-Quellcode:
var
  hashAsString : String;
begin
  hashAsString := MD5_Hash2String(MD5_HashForString('DeinKennWortString'));
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 12:28
Nur mal so schnell getippt
Delphi-Quellcode:
form1.Memo1.Text=MD5_Hash2String(
                 MD5_Hash_OverBuffer(@form1.passwort.Text[1],length(form1.passwort.Text)));
Ich gehe davon aus, das es ein Tedit auf Deinem Form gibt, das "passwort" heißt.
Deine Eingabe steht also in passwort.Text und ist ein String.
Da Pointer ein Zeiger ist, der auf eine Speicherstelle zeigt, mußt Du wann immer ein Pointer verlangt wird hier die Adresse einen speicherstelle übergeben. In unserem Falle ist das @(.....Text[1]) (oder ADDR(.....Text[1])) die [1] stellt sicher, das auch wirklich der Text-Bereich des Strings übergeben wird.
Und da der Ponter natürlich keine Längen-Information mitschleppt, muß im zweiten Parameter die Länge des Strings mit übergeben werden.

Das vorher natürlich noch eine Längenüberprüfung stattfinden muß, setz' ich mal als selbstverständlich vorraus. PW mit derLänge 0 sind ja nicht sehr sinnvoll.

Gruß
K-H

@sharky
wo kommt denn der MD5_HashforString her? hinke ich so hinterher?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 12:57
Zitat von p80286:
.... @sharky
wo kommt denn der MD5_HashforString her? hinke ich so hinterher?
Ziemlich weit unten in der MD5.pas :
Delphi-Quellcode:
{
  Danke an Sharky, der mich darauf hinwies, dass die Benutzer
  eine solche Funktion wohl lieber aufrufen würden.
 
  Sharky ist Moderator in der DP -> [url]http://www.delphipraxis.net/user4.html[/url]
}

function MD5_HashForString(aValue: String): TMD5Digest;
var
  Context: TMD5_CTX;
begin
  MD5Init(Context);
  MD5Update(Context, @aValue[1], Length(aValue));
  MD5Final(Context, Result);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 13:24
Danke!

Meine Version ist wohl zu alt!

gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#10

Re: Passworthash - einfach und schnell

  Alt 9. Feb 2010, 14:30
Danke für die schnellen und vielen Antworten!

Ihr seid Spitze!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:08 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