Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Hash in Delphi und PHP (https://www.delphipraxis.net/39865-hash-delphi-und-php.html)

Martin W 8. Feb 2005 13:59


Hash in Delphi und PHP
 
Hi,


Also ich habe ein Passwort... wie soll ich das Passwort verschlüsseln (bzw. Prüfsumme bilden, da es nicht zurückgerechnet sondern nur verglichen werden muss) so das ich in PHP in Delphi das gleiche Kennwort nehmen kann?

Beispiel:

MySQL Tabelle mit Usernamen + Passwort HASH
- Zugriff darauf von Delphi
- Zugriff darauf von PHP

Danke für alle Antworten im Vorraus... =)


MFG
Martin =)

goodvirus 8. Feb 2005 14:02

Re: Hash in Delphi und PHP
 
Des(aber zu unsicher)
MD5(so nen Mittelding, reicht eigentlich!)
SHAH1(ziemlich sicher)

Oder bau dir nen eigenden Einwegalgo ;)

Martin W 8. Feb 2005 14:04

Re: Hash in Delphi und PHP
 
Kannst du mir mal den Quellcode (bzw. ne Kompo) für SHAH1 geben?

Meflin 8. Feb 2005 15:16

Re: Hash in Delphi und PHP
 
Zitat:

Zitat von goodvirus
Des(aber zu unsicher)
MD5(so nen Mittelding, reicht eigentlich!)
SHAH1(ziemlich sicher)

Oder bau dir nen eigenden Einwegalgo ;)

was soll denn an sha1 sicherer sein als an md5 :gruebel:
(da ich ein wissbegieriger mensch bin will ich das schon wissen, hat nix mitklugscheißern zu tun)

Thorben86 8. Feb 2005 15:20

Re: Hash in Delphi und PHP
 
Nimm doch die Unit von Hagen zur Hilfe, da ist ein ziemlich guter Algo drin, müssteste auch was hier im Forum zu finden

Meflin 8. Feb 2005 15:23

Re: Hash in Delphi und PHP
 
Zitat:

Zitat von Thorben86
Nimm doch die Unit von Hagen zur Hilfe, da ist ein ziemlich guter Algo drin, müssteste auch was hier im Forum zu finden

einer? da sind alle oben gennanten drin ;)
Zitat:

Zitat von Hashalgos im DEC
MD4, MD5, SHA (other Name SHS), SHA1,
RipeMD128, RipeMD160, RipeMD256, RipeMD320,
Haval (128, 160, 192, 224, 256) with Rounds,
Snefru, Square, Tiger
Sapphire II (128, 160, 192, 224, 256, 288, 320)

von denen kannst du dir jetzt einen aussuchen (wenn du das dec nimmst, wozu ich dir raten würde ;) )

The-X 8. Feb 2005 16:13

Re: Hash in Delphi und PHP
 
laut http://www.heise.de/security/artikel/54554 soll MD5 in noch nicht absehbarer Zeit "unsicher" sein,
da eine Möglichkeit gefunden wurde 2 "Strings" zu generieren die den gleichen MD5-Hash haben ...

bei SHa-1 ist das nach angaben obiger Quelle nicht der Fall, da eine andere Methode für die Berechnung herangezogen wird.

des weiteren ist der SHA-1 Hash (21 Bytes) länger als der MD5 Hash (16 Bytes) womit die Kollisionsgefahr deutlich geringer ist :)
aber da wir Hagen bestimmt auch noch'n Wörtchen zu ablassen :mrgreen:

Martin W 8. Feb 2005 17:54

Re: Hash in Delphi und PHP
 
Schon mal danke für die Antworten... aber wie bekomme ich das auf seine von PHP auch hin ???

Gruß

goodvirus 8. Feb 2005 17:55

Re: Hash in Delphi und PHP
 
Also man kann zwar bei Md5 Kollisioenen berechnene8wurde schon mehrfach geschaft) jedoch ist es mit den heutigen Möglichkeiten recht schwierig ohne supercomputer...
Achja vorhin war die Frage warum SHah1, wiel die Bitlänge größer ist ;)

Edit: Für Php einfach dieses Verwenden
Delphi-Quellcode:
md5($var)
(glaub ich is lang her)

Jelly 8. Feb 2005 18:30

Re: Hash in Delphi und PHP
 
Du kannst direkt in MySQL die Funktion "password" nutzen, etwa so:

SQL-Code:
SELECT name, password(Name)
FROM tabellenname
Ich meine, das sollte eine MD5 Kodierung sein, habs aber nicht ausprobiert.

Meflin 8. Feb 2005 18:35

Re: Hash in Delphi und PHP
 
also für sha1 hab ich http://www.delphipraxis.net/internal...highlight=sha1 hier ne phpfunktion gepostet!

DevilsCamp 15. Feb 2005 09:51

Re: Hash in Delphi und PHP
 
Zitat:

Zitat von Jelly
Du kannst direkt in MySQL die Funktion "password" nutzen, etwa so:

SQL-Code:
SELECT name, password(Name)
FROM tabellenname
Ich meine, das sollte eine MD5 Kodierung sein, habs aber nicht ausprobiert.

falsch
MySQL nutzt eine eigene Verschlüsselung.

Ich würde eher gleich den MD5 Hash in die DB schreiben:
INSERT INTO tabellenname (username,passwort) VALUES ('Test1', MD5('passwort'));


Und dann anschliessend wie folgt:
Dein Delphi-Prog schickt nur den MD5 Hash an den Server.

Im PHP Skript steht dann folgendes:
Zitat:

<?
$db = mysql_connect('localhost', 'benutzername', 'MySQL-Passwort des Benutzers','DB-Name');
if ($db)
{
$q = mysql_query('SELECT * FROM tabellenname WHERE username="BENUTZER"');
$r = mysql_fetch_array($q);
if ($GESENDETES_PASSWORD == $r['passwort'])
echo "Sie sind eingeloggt";
else
echo "FALSCHES PASSWORD ODER BENUTZERNAME";

mysql_close($db);
}
else
{
echo "Kann keine Verbindung zum DB-Server herstellen.";
}
?>
Auf diese Art wird das Passwort nie im Klartext gesendet...

H3llsing 20. Mai 2010 12:17

Re: Hash in Delphi und PHP
 
heya,
ich muss nochmal dieses alte Topic zum Leben erwecken.

Situation: Ich möchte einen String in Delphi mit der neusten DEC Unit SHA1 verschlüsseln, klappt auch ganz gut. Das ganze ist dann ein link der in einer Email als hash fungiert und soll mit der PHP-Funktion SHA1() verglichen werden.

Problem: DEC und PHP erzeugen einen unterschiedlichen HASHwert, bei exakt gleichem String.

Installiert ist DEC5.2 sowie PHP5 mit der integrierten SHA1-Funktion.

hier noch mein code
Code:
procedure TForm1.Button4Click(Sender: TObject);
var
  Digest: array[0..19] of byte;
  s : string;
  i : integer;
begin
  Hash.Init;
  hash.UpdateStr(Edit_sha1.Text);
  hash.Final(Digest);
  s:= '';

  for i:= 0 to 19 do
    s:= s + IntToHex(Digest[i],2);
    Edit_sha1.Text:= s;                        


end;
zum vergleichen für PHP gibts diese schöne Seite
Hash-Generator


MFG

H3llsing

gammatester 20. Mai 2010 12:56

Re: Hash in Delphi und PHP
 
Die übliche Unicode-Katastrophe hast Du schon ausgeschlossen? Wird für den Ansistring "abc" ein SHA1-Werte von "a9993e364706816aba3e25717850c26c9cd0d89d" geliefert? Wer generische Strings hasht, sollte im Übrigen auf alles gefaßt sein.

H3llsing 20. Mai 2010 13:27

Re: Hash in Delphi und PHP
 
VIELEN DANK ! :thumb:

ein einfaches
Delphi-Quellcode:
hash.UpdateStr(AnsiToUtf8(Edit_sha1.Text));
hat die gewünschte veränderung gebracht =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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