Ich verwende Zend_Auth
mit setCredentialTreatment
, um die Hash-Methode und das Salz zu setzen. Ich sehe alle Beispiele, die so etwas tun, wobei salt
scheinbar als Text eingefügt wird.
- & gt; setCredentialTreatment ('SHA1 (CONCAT (?, Salz))'
aber mein Salz ist in der Datenbank gespeichert. Ich könnte es zuerst abrufen und dann in setCredentialTreatment
verwenden, aber gibt es eine Möglichkeit, es direkt als Feldnamen zu definieren, also würde setCredentialTreatment
wissen, um es aus diesem Feld zu bekommen? ähnlich wie wir den Feldnamen für den Benutzernamen oder das Passwort definieren
Ein Nebenproblem, das ich habe, ist, dass ich SHA512 nicht SHA1 verwenden möchte. Ist das möglich oder nicht verfügbar? Alle Beispiele, die ich mit SHA1 sehe.
Ich sollte sagen, ich bin ziemlich neu bei zend und portiere eine bestehende Anwendung, also bitte schalte mich mit den Antworten ein.
Das von Ihnen angegebene Beispiel verwendet das in der Datenbank gespeicherte Salz. Es wird funktionieren, solange das Salz in jeder Reihe in einem Feld namens "Salz" gespeichert ist. Wenn das Salz nicht in der Datenbank und stattdessen in einer PHP-Variablen wäre, würde der Code eher wie folgt aussehen:
%Vor%Was die Verwendung von SHA512 betrifft, könnte dies ein wenig komplizierter sein. Angenommen, Sie verwenden MySQL, ist SHA1 () in diesem Fall eine MySQL-Funktion, und MySQL hat keine Funktion für SHA512, soweit ich das beurteilen kann, und auch nicht PHP (edit: Ich lag falsch mit letzterem, siehe Kommentare ). Sie müssen also Ihre eigene PHP SHA512-Funktion implementieren, zuerst das Salz für den Benutzer aus der Datenbank laden, dann das Ergebnis hashen und nichts mit der Variablen in setCredentialTreatment tun.
Wie die andere Antwort vorgeschlagen hat, möchtest du vielleicht deinen eigenen Zend_Auth_Adapter dafür schreiben. Ein Auth-Adapter ist eine Klasse, die die Authentifizierung übernimmt, vermutlich in dem Moment, in dem du Zend_Auth_Adapter_DbTable benutzt. Sie können weitere Informationen über Auth-Adapter im Handbuch finden: Ссылка
Hier ist ein Beispiel:
%Vor%Tags und Links php security zend-auth hash zend-framework