Criptografia simétrica PHP

Exemplo de código manual de criptografar e descriptografar strings em PHP.

<?php
$string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789()/?><.,;:}]{[-_=+%$&*#@$!'" . '"';

function criptografar( $string ) {
    $r = "";
    for ( $i = 0; $i < strlen( $string ); $i++ ) {
        $n = ord( $string[ $i ] ) * 2 + 1;
        if ( $n < 10 ) {
            $n = "00" . $n;
        } elseif ( $n < 100 ) {
            $n = "0" . $n;
        }
        $r .= base64_encode( chr( $n ) );
    }

    $r1 = "";

    for ( $i = 0; $i < strlen( $r ); $i++ ) {
        $c = $r[ $i ];
        $n = ord( $c );
        if ( $n < 10 ) {
            $n = "00" . $n;
        } elseif ( $n < 100 ) {
            $n = "0" . $n;
        }
        $r1 .= $n;
    }

    return $r1;
}

function descriptografar( $string ) {
    $r = "";
    for ( $i = 0; $i < strlen( $string ) / 3; $i++ ) {
        $c = chr( substr( $string, $i * 3, 3 ) );
        $r .= $c;
    }

    $string = $r;

    $r = "";
    for ( $i = 0; $i < strlen( $string ) / 4; $i++ ) {
        $n = ord( base64_decode( substr( $string, $i * 4, 4 ) ) );
        $r .= chr( ( $n - 1 ) / 2 );
    }
    return $r;
}

$cript = criptografar( $string );
$dcript = descriptografar( $cript );

echo strlen( $cript ) . " - " . strlen( $string ) . " - ";

echo $cript . " - " . $dcript . "<br>";
?>

Compartilhe!

Deixe um comentário