Der österreichische elektronische Personalausweis stützt sich auf die sogenannten Branchenkennungen. Zum Beispiel kann ein Krankenhaus eine Person identifizieren, indem es eine Sektor-ID für diese Person erhält, die ungefähr wie folgt berechnet wird:
sha1(personalId + "+" + prefix + sectorId); // prefix is constant and irrelevant
Ist das eine gute Idee? Ich denke, die Möglichkeit einer noch so kleinen Kollision birgt ein Risiko.
In Hashtabellen haben Sie bei einer Kollision andere Möglichkeiten, die Gleichheit herzustellen, aber mit Primärschlüsseln können Sie möglicherweise nicht zwei identische Schlüssel haben. Dies kann durch einen zusammengesetzten Schlüssel umgangen werden, aber dann geht der Punkt einer eindeutigen Sektor-ID verloren.
Ist es in Ordnung, das zu tun, und gibt es eine gute Möglichkeit, es so zu haben, ohne dass es irgendwann kaputt geht?
personalId+ sectorIDwird bereits als eindeutige Kennung dienen, und da sich dort nichts wie ein Passwort befindet, das versteckt werden muss, scheint Hashing keinen wirklichen Nutzen zu haben. Was vermisse ich? Oder ist die "personID" etwas Geheimnisvolles?