MD5 für Dateinamen Missbrauchen

Marco-P

Erfahrenes Mitglied
Hallo Leute,

habe mich hier schon etwas umgeschaut und auch einiges zu MD5 gefunden.
Jetzt wollte ich das ganze für etwas anderes verwenden.

Ich möchte einen MD5 Code aus einer Seriennummer dem Datum und einer ID bilden.

zB: 78hdbetz735-20121208-003
Dabei kommt dieser Hash heraus
eca0f3c5961a6268465abaae322aa412

diesen String würde ich dann in der Datenbank ablegen und als Dateiname für eine Spezielle Datei verwenden.


Mein Gedanke war einfach so habe ich Dateinamen die nicht direkt zurückzuverfolgen sind wozu sie gehören.
Auser wenn ich die Datenbank habe, dort ist der Name abgelegt.
Auserdem habe ich niemals doppelte Dateinamen.

Ich denke mal mein Gedankengang ist so weit richtig.
Oder hat jemand eine andere Idee wie ich das lösen kann.

MfG Marco
 
Dein Gedankengang ist fast richtig. MD5 ist nicht eindeutig, somit sind Überschneidungen theoretisch möglich.
Ansonsten kann man das gerne so machen.
 
Okay, habs verstanden.

Wenn es so passiert wie ich es mir vorstelle wird es zu einer Seriennummer niemals das gleiche Datum in verbindung gesetzt werden. Von daher gehe ich mal davona us das ein doppelter Hash nicht möglich ist (bzw in so weiter ferne das es mich nicht trifft :))
 
Naja, sagen wir mal so die Wahrscheinlichkeit ist sehr sehr gering. Da du es eh nur als Schlüssel verwenden möchtest, kannst du auch einfach prüfen ob ein Schlüssel (Hash) schon in der DB abgespeichert ist, und notfalls nocheinmal drüber hashen.
 
Ich würde dir raten base64 zu nehmen.
Du kannst es codieren und decodieren falls nötig, was bei MD5 nicht so einfach möglich ist.

PHP:
echo base64_encode('78hdbetz735-20121208-003');
// ergibt NzhoZGJldHo3MzUtMjAxMjEyMDgtMDAz

echo base64_decode('NzhoZGJldHo3MzUtMjAxMjEyMDgtMDAz');
// ergibt 78hdbetz735-20121208-003

Probier selbst mal aus:
http://writecodeonline.com/php/

Wenn du allerdings einfach nur Unique Dateinamen nutzen möchtest, sollst du eher an Syntax wie sowas denken:
CvPvbZBnqq_u2OHEgdocD_bYQM9Nzjop.jpg/.png/.pdf
Was auch immer du brauchst.

Wenn du einen Unique Namensgenerator suchst, meld dich bei mir, ich hab da was schönes :)
 
Naja richtiges Dekodieren gibt es nicht bei MD5 das stimmt schon, aber es gibt Datenbanken für Reverse Engineering um wieder an den Urpsrungswert zu kommen. Ich wollte es hier eher Topic basiert halten und einfach, aber das gehört ja nicht zur Frage dieses Forumposts!
 
Zurück