|
|
PHP (angielski akronim rekurencyjny, którego rozwinięcie to PHP Hypertext Preprocessor), pierwotnie nazwany Personal
Home Page - skryptowy język programowania, służący przede wszystkim do tworzenia dynamicznych stron WWW i wykonywany w
tym przypadku po stronie serwera, z możliwością zagnieżdżania w HTML (bądź XHTML). PHP jest podobny w założeniach do
dużo starszego mechanizmu SSI (Server Side Includes), jednak jest w stosunku do SSI nieporównanie bardziej rozbudowany.
Udostępniany jest na zasadach licencji open-source. Jego składnia bazuje na językach C, Java i Perl.
SQL (ang. Structured Query Language) to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz
do umieszczania i pobierania danych z baz danych.
Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi
zarządzania bazą danych DBMS.
Jest to język programowania opracowany w latach siedemdziesiątych w firmie IBM. Stał się on standardem w komunikacji z
serwerami relacyjnych baz danych. Wiele współczesnych systemów relacyjnych baz danych używa do komunikacji z
użytkownikiem SQL, dlatego mówi się, że korzystanie z relacyjnych baz danych, to korzystanie z SQL-a.
Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD,
Microsoft Windows). Po angielsku słowo Apache wymawia się epaczi, co brzmi tak samo jak a patchy (server), co było
określeniem tego serwera we wczesnym stadium jego rozwoju w 1995 roku, kiedy był on głównie zbiorem poprawek (patch)
nałożonych na serwer HTTP o nazwie NCSA.
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. W maju 2003 jego udział wśród serwerów wynosił 62%. W
połączeniu z interpreterem języka skryptowego PHP i bazą danych MySQL, Apache stanowi jedno z najczęściej spotykanych
środowisk w firmach oferujących miejsce na serwerach sieciowych.
|
crypt
(PHP 3, PHP 4, PHP 5) crypt -- One-way string encryption
(hashing)
Descriptionstring crypt (
string str [, string salt] )
crypt() will return an encrypted
string using the standard Unix DES-based encryption algorithm or alternative
algorithms that may be available on the system. Arguments are a
string to be encrypted and an optional salt string to base the
encryption on. See the Unix man page for your crypt function
for more information.
If the salt argument is not provided, one will be randomly
generated by PHP each time you call this function.
Some operating systems support more than one type of
encryption. In fact, sometimes the standard DES-based
encryption is replaced by an MD5-based encryption algorithm.
The encryption type is triggered by the salt argument. At
install time, PHP determines the capabilities of the crypt
function and will accept salts for other encryption types. If
no salt is provided, PHP will auto-generate a standard two
character salt by default, unless the default encryption type
on the system is MD5, in which case a random MD5-compatible
salt is generated. PHP sets a constant named CRYPT_SALT_LENGTH
which tells you whether a regular two character salt applies to
your system or the longer twelve character salt is
applicable.
If you are using the supplied salt, you should be aware that
the salt is generated once. If you are calling this function
repeatedly, this may impact both appearance and security.
The standard DES-based encryption crypt() returns the salt as the first two
characters of the output. It also only uses the first eight
characters of str, so longer
strings that start with the same eight characters will generate
the same result (when the same salt is used).
On systems where the crypt() function supports multiple
encryption types, the following constants are set to 0 or 1
depending on whether the given type is available:
-
CRYPT_STD_DES - Standard DES-based encryption with a two
character salt
-
CRYPT_EXT_DES - Extended DES-based encryption with a
nine character salt
-
CRYPT_MD5 - MD5 encryption with a twelve character salt
starting with $1$
-
CRYPT_BLOWFISH - Blowfish encryption with a sixteen
character salt starting with $2$ or $2a$
Notatka: There is no decrypt function, since
crypt() uses a one-way
algorithm.
Przykład 1. crypt() examples
<?php
$password = crypt('mypassword'); // let the salt be automatically generated
/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */ if (crypt($user_input, $password) == $password) {
echo "Password verified!";
} ?> |
|
Przykład 2. Using crypt() with htpasswd
<?php // Set the password $password = 'mypassword';
// Get the hash, letting the salt be automatically generated
$hash = crypt($password); ?> |
|
Przykład 3. Using crypt() with different
encryption types
<?php if (CRYPT_STD_DES == 1) {
echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
}
if (CRYPT_EXT_DES == 1) {
echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}
if (CRYPT_MD5 == 1) {
echo 'MD5: ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}
if (CRYPT_BLOWFISH == 1) {
echo 'Blowfish: ' . crypt('rasmuslerdorf', '$2a$07$rasmuslerd...........$') . "\n";
} ?> |
Powyższy przykład wyświetli coś podobnego do:
Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5: $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish: $2a$07$rasmuslerd............nIdrcHdxcUxWomQX9j6kvERCFjTg7Ra
|
|
See also md5() and the
Mcrypt extension.
|