PHP/Szyfrowanie: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Poprawiono błąd logiczny.
Podział na szyfrowanie i hashowanie
Linia 1:
== Szyfrowanie ==
W języku PHP dane można hashować (w odróżnieniu od szyfrowania jest to proces jednostronny) używając do tego specjalnych funkcji, np. sha1 lub md5.
 
PHP udostępnia możliwość szyfrowania co jest procesem obustronnym - dane można zarówno zaszyfrować jak i odszyfrować. Przykładowymi funkcjami szyfrującymi są base64.
 
* base64_encode - koduje ciąg
* base64_decode - dekoduje ciąg
 
<source lang="php">
<?php
$tekst = "Przykładowy tekst z różnymi znakami specjalnymi @#$ do zakodowania.";
 
$zaszyfrowane = base64_encode($tekst);
echo($zaszyfrowane);
// UHJ6eWuzYWRvd3kgdGVrc3QgeiBy879ueW1pIHpuYWthbWkgc3BlY2phbG55bWkgQCMkIGRvIHpha29kb3dhbmlhLg==
 
$odszyfrowane = base64_decode($zaszyfrowane);
echo($odszyfrowane);
// Przykładowy tekst z różnymi znakami specjalnymi @#$ do zakodowania.
 
if($tekst == $odszyfrowane)
echo("Wszystko w porządku.");
?>
</source>
 
 
== Hashowanie ==
 
WPonadto języku PHP dane można również hashować (w odróżnieniu od szyfrowania jest to proces jednostronny) używając do tego specjalnych funkcji, np. sha1 lub md5.
 
<source lang="php">
Linia 10 ⟶ 37:
 
Powyżej przedstawiony jest skrypt hashujący dane odbierane z formularza POST. Funkcji tej można używać np. do hashowania haseł użytkowników, w skrypcie rejestracji, tak by nie dały się rozszyfrować.
 
''' Funkcje hashujące '''
* sha1
* md5
* hash
* crc32
* crypt
 
W przypadku hashowania plików zazwyczaj wymagane jest użycie innej funkcji. Najczęściej wystarczy dodać "_file" (np. md5_file) jednak nie jest to reguła. Zaleca się unikać hashowania dużych plików gdyż operacja ta może znacznie obciążyć maszynę, na której uruchomiony zostanie ów skrypt.