
Öffentliche Methoden | |
| __toString () | |
| Wandelt Hash in String um. | |
| compareTo (Dsao_Hash $hash) | |
| Hash-Vergleich. | |
| getAlgorithm () | |
| Gibt dem verwendeten Algorithmus zurück. | |
| getHash ($length=0) | |
| Gibt den aktuellen Hash, gekürzt oder ungekürzt, zurück. | |
| getLength ($trueLength=false) | |
| Länge des Hashes, bzw. | |
| isReadOnly ($throw=false) | |
| Gibt zurück, ob Objekt schreibgeschützt ist. | |
| setAlgorithm ($algorithm) | |
| Festsetzung des Verschluesselungsalgorithmus. | |
| setHash ($hash=null, $fromText=false) | |
| Legt den Hash fest. | |
| setLength ($length=0) | |
| Setzt Länge, auf die der Hash bei der Rückgabe gekürzt werden soll. | |
| setReadOnly ($readOnly=true) | |
| Setzt den Hash auf schreibgeschützt. | |
Öffentliche, statische Methoden | |
| static | factory ($hash=null, $length=0) |
| Erstellt einen neuen Hash. | |
| static | fromText ($text=null, $length=0) |
| Klartextentgegenname und Hashbildung. | |
Geschützte Methoden | |
| __construct ($hash=null, $length=0, $algorithm=null) | |
| Hash-Konstrukt. | |
| _generateHash ($text=null) | |
| Generiert einen (zufälligen) Hash. | |
Geschützte, statische Methoden | |
| static | _isHashInstalled () |
| Prüft, ob Funktion hash() verfügbar ist. | |
Geschützte Attribute | |
| $_algorithm = 'md5' | |
| string, Benutzter Algorithmus | |
| $_hash = null | |
| string, Hash | |
| $_length = 0 | |
| int, Laenge, auf die der Hash bei Rueckgabe gekürzt werden soll, bei 0 wird er nicht gekürzt | |
| $_readOnly = false | |
| bool, ob Objekt schreibgeschützt ist | |
Statische geschützte Attribute | |
| static | $_hashInstalled = true |
| bool, ob PHP mit Hash-Unterstützung kompiliert wurde | |
Definiert in Zeile 9 der Datei Hash.php.
| Dsao_Hash::__construct | ( | $ | hash = null, |
|
| $ | length = 0, |
|||
| $ | algorithm = null | |||
| ) | [protected] |
Hash-Konstrukt.
| $hash | string, Hash | |
| $length | int, Länge, auf die gekürzt werden soll | |
| $algorithm | string, Algorithmus |
Definiert in Zeile 45 der Datei Hash.php.
Benutzt Dsao_Registry::get(), setAlgorithm(), setHash() und setLength().
00046 { 00047 // Falls kein Algorithmus übergeben wurde, Standardalgorithmus wählen 00048 if (null === $algorithm) 00049 { 00050 $algorithm = Dsao_Registry::get('config')->encryption->hashAlgorithm; 00051 } 00052 00053 // Werte setzen 00054 $this->setAlgorithm($algorithm); 00055 $this->setHash($hash); 00056 $this->setLength($length); 00057 }
| Dsao_Hash::__toString | ( | ) |
Wandelt Hash in String um.
Erneute Implementation in Dsao_Hash_Password.
Definiert in Zeile 64 der Datei Hash.php.
Benutzt getHash().
00065 { 00066 return $this->getHash(); 00067 }
| Dsao_Hash::_generateHash | ( | $ | text = null |
) | [protected] |
Generiert einen (zufälligen) Hash.
| $text | string, Text, aus dem Hash erzeugt werden soll |
Definiert in Zeile 75 der Datei Hash.php.
Benutzt _isHashInstalled().
Wird benutzt von Dsao_Hash_Password::_generatePassword() und setHash().
00076 { 00077 $text = (null === $text ? uniqid(mt_rand(), true) : $text); 00078 00079 $this->_hash = (self::_isHashInstalled() ? 00080 hash($this->_algorithm, $text) : 00081 call_user_func($this->_algorithm, $text)); 00082 }
| static Dsao_Hash::_isHashInstalled | ( | ) | [static, protected] |
Prüft, ob Funktion hash() verfügbar ist.
Definiert in Zeile 89 der Datei Hash.php.
Wird benutzt von _generateHash().
00090 { 00091 if (null === self::$_hashInstalled) 00092 { 00093 self::$_hashInstalled = (function_exists('hash') ? true : false); 00094 } 00095 00096 return self::$_hashInstalled; 00097 }
| Dsao_Hash::compareTo | ( | Dsao_Hash $ | hash | ) |
Hash-Vergleich.
Vergleicht den Hash mit einem anderen, wobei der fremde Hash mindestens genauso lang sein muss, aber länger sein darf (überstehendes wird abgeschnitten). Dies ist z.B. nützlich, wenn in der Datenbank nicht genügend Platz für einen SHA1-Hash ist, somit also z.B. nur die ersten 20 Zeichen gespeichert werden. Dann werden einfach nur die ersten 20 Zeichen des zu prüfenden Hashes verglichen
| $hash | Dsao_Hash, Zu vergleichender Hash |
Definiert in Zeile 112 der Datei Hash.php.
Benutzt getHash().
00113 { 00114 return ($this->getHash() == $hash->getHash($this->getLength())); 00115 }
| static Dsao_Hash::factory | ( | $ | hash = null, |
|
| $ | length = 0 | |||
| ) | [static] |
Erstellt einen neuen Hash.
| $hash | string, Hash | |
| $length | int, Länge des Hashes |
Erneute Implementation in Dsao_Hash_Password.
Definiert in Zeile 124 der Datei Hash.php.
Wird benutzt von Dsao_Uri_Http::setToken().
| static Dsao_Hash::fromText | ( | $ | text = null, |
|
| $ | length = 0 | |||
| ) | [static] |
Klartextentgegenname und Hashbildung.
Nimmt Klartext entgegen und bildet daraus den Hash. Der Klartext wird nicht gespeichert.
| $text | string, Klartext | |
| $length | int, Länge des Hashes (!) |
Definiert in Zeile 139 der Datei Hash.php.
Wird benutzt von Dsao_Model_User_Profile::_editPassword().
00140 { 00141 // Hash erstellen 00142 $hash = new self(null, $length); 00143 00144 // Hash generieren und setzen 00145 $hash->_generateHash($text); 00146 00147 return $hash; 00148 }
| Dsao_Hash::getAlgorithm | ( | ) |
| Dsao_Hash::getHash | ( | $ | length = 0 |
) |
Gibt den aktuellen Hash, gekürzt oder ungekürzt, zurück.
| $length | int, Länge, auf die gekürzt werden soll; null = Wert aus Klasse, 0 = vollständiger Hash |
Definiert in Zeile 167 der Datei Hash.php.
Wird benutzt von __toString(), Dsao_Hash_User::_findRow(), compareTo() und Dsao_Hash_User::insert().
00168 { 00169 // Falls ganzer String zurückgegeben werden soll, oder in Klasse keine 00170 // Länge definiert wurde 00171 if (0 === $length || (!$length && !$this->_length)) 00172 { 00173 return $this->_hash; 00174 } 00175 // Falls keine Länge definiert wurde, die aus Klasse nehmen 00176 else if (!$length) 00177 { 00178 $length = $this->_length; 00179 } 00180 00181 // Gekürzten Hash zurückgeben 00182 return substr($this->_hash, 0, $length); 00183 }
| Dsao_Hash::getLength | ( | $ | trueLength = false |
) |
Länge des Hashes, bzw.
Länge, auf den er gekürzt werden soll, zurück geben.
| $trueLength | bool, Ob wahre Länge des Hashes zurück gegeben werden soll |
Definiert in Zeile 191 der Datei Hash.php.
00192 { 00193 // Falls wahre Länge zurück gegeben werden soll, oder Hash eh nicht gekürzt 00194 // werden sollte 00195 if ($trueLength || !$this->_length) 00196 { 00197 return strlen($this->_hash); 00198 } 00199 00200 return $this->_length; 00201 }
| Dsao_Hash::isReadOnly | ( | $ | throw = false |
) |
Gibt zurück, ob Objekt schreibgeschützt ist.
| $throw | bool, Ob ggf. eine Exception geworfen werden soll |
Definiert in Zeile 209 der Datei Hash.php.
Wird benutzt von Dsao_Hash_User::__set(), Dsao_Hash_User::hasDuplicates(), setAlgorithm(), setHash() und setLength().
00210 { 00211 if (true === $throw && true === $this->_readOnly) 00212 { 00213 throw new Dsao_Exception('dsao_hash_object_readonly'); 00214 } 00215 00216 return (bool) $this->_readOnly; 00217 }
| Dsao_Hash::setAlgorithm | ( | $ | algorithm | ) |
Festsetzung des Verschluesselungsalgorithmus.
Legt einen Verschlüsselungsalgorithmus fest. Eine Änderung des Algorithmus bewirkt keine Änderung des Hashes, dieser muss erst neu generiert werden
| $algorithm | string, Algorithmus |
Definiert in Zeile 228 der Datei Hash.php.
Benutzt isReadOnly().
Wird benutzt von __construct().
00229 { 00230 // Falls Objekt schreibgeschützt ist wird eine Exception geworfen 00231 $this->isReadOnly(true); 00232 00233 // Falls Hash-Funktionen verfügbar 00234 if (self::_isHashInstalled()) 00235 { 00236 // Algorithmus gültig? 00237 if (in_array($algorithm, hash_algos())) 00238 { 00239 $this->_algorithm = $algorithm; 00240 } 00241 } 00242 // Ansonsten schauen, ob Funktion selber vorhanden (md5(), sha1(), crc32() 00243 // usw.) 00244 else 00245 { 00246 if (function_exists($algorithm)) 00247 { 00248 $this->_algorithm = $algorithm; 00249 } 00250 } 00251 00252 return $this; 00253 }
| Dsao_Hash::setHash | ( | $ | hash = null, |
|
| $ | fromText = false | |||
| ) |
Legt den Hash fest.
Wird nichts übergeben, so wird ein neuer generiert. Durch den zweiten Parameter kann auch Klartext verschlüsselt werden.
| $hash | string, Hash | |
| $fromText | bool, ob Klartext übergeben wurde |
Definiert in Zeile 265 der Datei Hash.php.
Benutzt _generateHash() und isReadOnly().
Wird benutzt von __construct().
00266 { 00267 // Falls Objekt schreibgeschützt ist wird eine Exception geworfen 00268 $this->isReadOnly(true); 00269 00270 // Falls kein Hash übergeben wurde, zufälligen generieren 00271 if (null === $hash || $fromText) 00272 { 00273 $this->_generateHash(($fromText ? $hash : null)); 00274 } 00275 else 00276 { 00277 $this->_hash = $hash; 00278 } 00279 00280 return $this; 00281 }
| Dsao_Hash::setLength | ( | $ | length = 0 |
) |
Setzt Länge, auf die der Hash bei der Rückgabe gekürzt werden soll.
| $length | int, Länge; 0 = ungekürzt |
Definiert in Zeile 289 der Datei Hash.php.
Benutzt isReadOnly().
Wird benutzt von __construct().
00290 { 00291 // Falls Objekt schreibgeschützt ist wird eine Exception geworfen 00292 $this->isReadOnly(true); 00293 00294 $this->_length = $length; 00295 00296 return $this; 00297 }
| Dsao_Hash::setReadOnly | ( | $ | readOnly = true |
) |
1.5.7.1