PHP FAQ

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

piechnat

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ż... ;-))

FAQ

2 komentarzy

Adrian Berry napisał(a)

Szyfrów nie należy utożsamiać z kodami

ASCII to kod :P
system szesnastkowy też :)

WOW normalnie odkrycie... nie do złamania