Tutorials
base64_encode()
Het omzetten van wat dan ook naar een hash en weer terug Edit: typo's gefixt (dat van md5 heb ik nog niet uitgeprobeerd, maar het moet mogelijk zijn)
Pagina 1
base64_encode()
werkt met PHP versie 3, 4 en 5
De functie is eigenlijk een van de simpelste die er zijn, maar wordt zelden gebruikt. Het grote voordeel is dat je hierbij data gemakkelijk van een hash en weer terug kunt "transformeren". Ik zeg nadrukkelijk data omdat je hier vanalles kunt gebruiken, zelfs bestanden. het is eigenlijk bedoeld om data te transporteren over text-only kanalen. Je kunt dit zelfs gebruiken in een mysql-database om foto's op te slaan!
De basisfunctie ziet er als volgt uit:
<?
$hash = base64_encode($string);
?>
$hash zal dan een hash zijn die (volgens PHP.NET) 33% groter is dan de string, of het bestand zelf. In tegenstelling tot md5() kun je hier wel de hele data terughalen, omdat de hash uniek is. Het is dus een two-way systeem.
De functie is eigenlijk een van de simpelste die er zijn, maar wordt zelden gebruikt. Het grote voordeel is dat je hierbij data gemakkelijk van een hash en weer terug kunt "transformeren". Ik zeg nadrukkelijk data omdat je hier vanalles kunt gebruiken, zelfs bestanden. het is eigenlijk bedoeld om data te transporteren over text-only kanalen. Je kunt dit zelfs gebruiken in een mysql-database om foto's op te slaan!
De basisfunctie ziet er als volgt uit:
<?
$hash = base64_encode($string);
?>
$hash zal dan een hash zijn die (volgens PHP.NET) 33% groter is dan de string, of het bestand zelf. In tegenstelling tot md5() kun je hier wel de hele data terughalen, omdat de hash uniek is. Het is dus een two-way systeem.
Pagina 2
base64_decode()
Omdat het een two-way systeem is, kun je het ook nog terug halen;
<?
$string = base64_decode($hash);
?>
de $string is dus nu identiek aan de $string op pagina 1
<!--JA, NOG EEN EDIT!-->
Dus om het samen te vatten:
<?
$string = "hello world";
$enc = base64_encode($string);
//$enc is nu een hash, waar ik ook geen moer van snap
$out = base64_decode($enc);
//$out is weer een string
echo $out;
?>
Nu staat er: hello world
Het handige is nou dat je $enc kan toevoegen in een database als een waarde, die je later gemakkelijk via een query kan opzoeken. Of je kan $enc in de body van een email zetten om iso-files te versturen bijvoorbeeld. (heb je wel een lang mailtje, maar goed). Vaak is er geen limiet aan message-grootte, maar aan grootte van de attachment. Hiermee is dat te omzeilen. (met succes toegepast, mijn mailtje was 40 MB groot)
<!--einde edit-->
Maar er zijn wel kanttekeningen! Dit is een open systeem, iedereen die de hash bemachtigt heeft toegang tot de data. DIT IS DUS GEEN ENCRYPTIE! Wel kun je dit gebruiken in een md5 encryptie-script.
<?
$enc = base64_encode(md5($string));
?>
Om het extra veilig te maken.
Succes
<?
$string = base64_decode($hash);
?>
de $string is dus nu identiek aan de $string op pagina 1
<!--JA, NOG EEN EDIT!-->
Dus om het samen te vatten:
<?
$string = "hello world";
$enc = base64_encode($string);
//$enc is nu een hash, waar ik ook geen moer van snap
$out = base64_decode($enc);
//$out is weer een string
echo $out;
?>
Nu staat er: hello world
Het handige is nou dat je $enc kan toevoegen in een database als een waarde, die je later gemakkelijk via een query kan opzoeken. Of je kan $enc in de body van een email zetten om iso-files te versturen bijvoorbeeld. (heb je wel een lang mailtje, maar goed). Vaak is er geen limiet aan message-grootte, maar aan grootte van de attachment. Hiermee is dat te omzeilen. (met succes toegepast, mijn mailtje was 40 MB groot)
<!--einde edit-->
Maar er zijn wel kanttekeningen! Dit is een open systeem, iedereen die de hash bemachtigt heeft toegang tot de data. DIT IS DUS GEEN ENCRYPTIE! Wel kun je dit gebruiken in een md5 encryptie-script.
<?
$enc = base64_encode(md5($string));
?>
Om het extra veilig te maken.
Succes
Reacties
0