15.06.12

PHP: Einen Hash-Wert eines beliebigen Objektes erzeugen.

Will man, um die Integrität sicherzustellen, einen Hash von einem Objekt in PHP erzeugen kann man die PHP eigene Funktion spl_object_hash verwenden. ein Nachteil ist jedoch, dass sie nicht für alle Objekte einen Hash-Wert erzeugen kann. Beispielsweise bei Arrays verweigert sie den Dienst. Mit folgender Methode lässt sich von jedem Objekt ein Hash-Wert erzeugen (ausgenommen Ressourcen):

function hashObject($obj) {
	$obj = json_encode($obj);
	return md5($obj);
}

Dem aufmerksamen Betrachter wird sofort auffallen, dass hier MD5 zum Einsatz kommt. Dies geschieht prinzipiell aus Gründen der Performance. Möchte man diese Methode jedoch nicht nur verwenden um die Integrität von Daten zu überprüfen, sondern setzt sie in einem sicherheitsrelevanten Bezug ein, sollte MD5 dringend gegen eine sichere Hash-Funktion wie z.B. SHA2 ersetzt werden. Dies könnte dann wie folgt aussehen:

function hashObjectSecure($obj) {
	$obj = json_encode($obj);
	return hash('sha512', $obj);
}

Das könnte Sie auch interessieren:


Von: Tags: php, Web

Sag deine Meinung

Die E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.






Suche

Bleibe auf dem Laufenden

Mit dem Newsletter verpasst man nie mehr neue Beiträge und wird trotzdem nicht zugespammt.