Programowanie w języku PHP » FAQ

Jak w prosty sposób zaszyfrować i odszyfrować tekst

  • 2006-04-22 20:31
  • 2 komentarze
  • 999 odsłon
  • Oceń ten tekst jako pierwszy
Takich algorytmów można wymyślać na pęczki ale wydaje
mi się że dobrze by było przedstawić najprostszy.

Do zakodowania posłużymy się funkcjami:
  • ord - zwraca kod ascii podanego znaku
  • dechex - konwertuje liczbę z systemu dziesiętnego na heksadecymalny
  • str_pad - dopełnia string jakąś sekwencją znaków do podanej długości
Tej ostatniej użyjemy aby liczba w systemie heksadecymalnym zapisana była
zawsze za pomocą dwóch znaków.

Do odszyfrowania wykorzystamy funkcję odwrotnie działającą do
ord czyli chr oraz analogicznie w przypadku dechex funkcję
hexdec.

function koduj ( $str ) {
    $temp = '';
    for ( $i = 0; $i < strlen( $str ); $i++) {
        $temp = ord( $str[$i] );
        $temp = dechex( $temp );
        $temp = str_pad( $temp, 2, '0', STR_PAD_LEFT );
        $result .= $temp;
    }
    return $result;
}
 
function dekoduj ( $str ) {
    $temp = '';
    for ( $i = 0; $i < strlen( $str ); $i = $i + 2 ) {
        $temp = $str[$i] . $str[$i+1];
        $temp = hexdec( $temp );
        $temp = chr( $temp );
        $result .= $temp;
    }
    return $result;
}


No i jakiś przykład użycia:

$tekst = 'Litwo !!! ojczyzno moja :-)';
$zakodowany_tekst = koduj( $tekst );
$odkodowany_tekst = dekoduj( $zakodowany_tekst );
 
echo $tekst . '<br>';
echo $zakodowany_tekst . '<br>';
echo $odkodowany_tekst;


No i już... ;-))

2 komentarze

Jojersztajner 2006-04-22 21:12

<quote=Adrian Berry>Szyfrów nie należy utożsamiać z kodami</quote>
ASCII to kod :P
system szesnastkowy też :)

SebaZ 2006-04-22 20:39

WOW normalnie odkrycie... nie do złamania