Popis
string
crypt
( string str [, string salt])
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
automaticky
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
.
Příklad
1
.
crypt(
)
pří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
!"
;
}
?
|
|
Dále
také
md5(
)
a
Mcrypt
příkazy
.