crypt

 

PHP -> Funkcie -> Funkcie pre prácu s reťazcami PHP -> crypt

Syntax


string crypt ( string str [, string salt] )

Popis


Príkaz jazyka PHP
crypt -- Jednosměrné zašifrování řetězce

crypt zašifruje řetězec pomocí standardní Unixovské šifrovací metody DES nebo alternativního algoritmu dostupného v operačním systému. Argumenty jsou řetězec k zašifrování a volitelný dvouznakový řetězec salt, na kterém se šifrování založí. Více informací naleznete v Unixovské man stránce vaší crypt funkce.

Není-li uveden salt, PHP jej náhodně vygeneruje.

Některé operační systémy podporují více typů šifrování. Někdy se standardní DES šifrování nahrazuje šifrovacím algoritmem založeným na MD5. Typ šifrování se zvolí podle argumentu salt. PHP zjistí pči instalaci schopnosti funkce crypt a bude přijímat salt pro další typy šifrování. Při absenci salt PHP aicky vygeneruje standardní dvouznakový DES salt a v případě, že je výchozím typem šifrování na daném systému MD5, vygeneruje náhodný salt kompatibilní s MD5. PHP vytváří konstantu CRYPT_SALT_LENGTH, která vám řekne, jestli se na váš systém hodí běžný dvouznakový salt nebo delší dvanáctiznakový MD5 salt.

Používáte-li poskytnutý salt, měli byste si být vědomi toho, že se generuje jen jednou. Pokud tuto funkci voláte rekurzivně, může to mít účinek na vzhled a bezpečnost.

U standardního DES šifrování crypt vrací salt jako první dva znaky výstupu. K tomu také používá jen prvních osum znaků z str, takže delší řetězce, ktewré začínají osmi stejnými znaky budou generovat i stejný výsledek (když je použit stejný salt).

Na systémech, kde funkce crypt podporuje více typů šifrování se následující konstanty nastaví na 0 nebo 1 podle toho, zda je daný typ dostupný:
  • CRYPT_STD_DES - Standardní DES šifrování s dvouznakovým SALT
  • CRYPT_EXT_DES - Rozšířené DES šifrování s devítiznakovým SALT
  • CRYPT_MD5 - MD5 šifrování s dvanáctiznakovým SALT začínajícím $1$
  • CRYPT_BLOWFISH - Rozšířené DES šifrování s šestnáctiznakovým SALT začínajícím $2$


Poznámka: Neexistuje žádná decrypt funkce, protože crypt() používá jednosměrný algoritmus.

Príklad


<?php
$heslo = crypt("MePrvniHeslo"); // necháme vygenerovat salt
/* Mohli byste narazit na problémy při úplném výsledku crypt() jako salt pro
porovnání hesla, pokud jsou použity rozdílné šifrovací algoritmy. (jak bylo
řečeno výše, standardní DES šifrování používá dvouznakový salt, ale MD5
šifrování používá dvanáctiznakový. */

if (crypt($uziv_vstup, $heslo) == $heslo) {
   echo "Heslo ověřeno!";
}
?>


Pozri aj


md5



vytlačiť článok  hľadať súvisiace články 



Chat ku článku

Vyhľadávanie na stránke
Reklama
Náhodný obrázok
náhodný obrázok
Kontakty

Martin Kasman, M Software
Smreková 3095/23
Email: martin@kasman.sk

Telefón: 0908 270 294