1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

MD5 / SHA1 - Unique ?

  • Teron Gerofied
  • 17. Februar 2011 um 16:11
  • Teron Gerofied
    Meister(in)
    Beiträge
    347
    • 17. Februar 2011 um 16:11
    • #1

    Hallo,

    ich wollte mal nachfragen ob MD5/SHA1 wirklich unique sind ?

    Weil dann hätte ich die Idee, dass ich statt autoincrement bei SQL lieber einen gehashten Timestamp abspeichere. Wäre die Idee gut oder eher zu verwerfen ?

    Lg

    PHP
    if(isset($this) || !isset($this)){ // that's the question...
  • The User
    Forum Guru
    Beiträge
    4.044
    • 17. Februar 2011 um 16:45
    • #2

    Die Antwort kann man sich durch kurzes Nachdenken selber herleiten: Eingabe von md5/sha1: ein beliebig langer String. Ausgabe von md5/sha1: ein Integer fester Größe (z.B. 128 Bit bei md5). D.h. es gibt unendlich viele mögliche Eingaben und endlich viele mögliche Ausgaben, damit können die ja wohl kaum eineindeutig sein. Da die darauf ausgelegt sind, chaotisch zu sein, kannst du auch nicht davon ausgehen, dass in einem gewissen Bereich Eineindeutigkeit vorliegt. Außerdem bringt deine Idee nichts, Integers sind als Schlüssel logischerweise schneller, wenn sie keine 128 Bit oder mehr haben, und außerdem kann man leicht den Timestamp herausbekommen, wenn man ungefähr weiß, wo er liegt.

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

  • Grevas
    König(in)
    Reaktionen
    3
    Beiträge
    1.043
    • 17. Februar 2011 um 20:12
    • #3

    Mit dem Post vom User ist die Frage wohl beantwortet.

    Wenn du aber trotzdem möchtest, dass ein Schlüssel dem Betrachter keine Informationen liefert, nimm doch dafür uniqid(). Oder schreib dir selbst einen kleinen codierer der mit dem timestmap & microsekunden arbeitet.

  • The User
    Forum Guru
    Beiträge
    4.044
    • 18. Februar 2011 um 00:17
    • #4

    Unwahrscheinlich ist eine Kollision natürlich…

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

Tags

  • ionen
  • gründe
  • gründen
  • informationen
  • ring
  • eingabe
  • ausgabe
  • gewissen
  • unique
  • schlüssel
  • sql
  • string
  • eingaben
  • map
  • md5
  • timestamp
  • integer
  • ausgaben
  • größe
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™