Cara Enkripsi Parameter Dan Variabel Pada PHP


Kali ini yang akan kita kupas adalah cara mengenskripsi URL parameter agar lebih aman dari peretasan seperti XSS exploit, SQL Injection, dll seperti kebanyakan website – website besar.


 Tentu yang harus kita lakukan pertama adalah membuat function. Berikut functionnya:
<?php

function encrypt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qEncoded      = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
    return( $qEncoded );
}

function decrypt( $q ) {
    $cryptKey  = 'qJB0rGtIn5UB1xG03efyCp';
    $qDecoded      = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), "\0");
    return( $qDecoded );
}
?> 


Jadi ada dua fungsi, yang satu encrypt() berfungsi untuk mengubah string menjadi tipe string md5 yang kemudian di encrypt kembali menjadi base64, dengan kata lain untuk melakukan double enkripsi. Fungsi yang satunya adalah kebalikan dari fungsi encrypt() yaitu untuk mengembalikan ke string semula

Berikut kode PHP-nya, tambahkan di bawah function tadi:

<?php
 $id = "USR13";
$Encrypted = encrypt($id);
$Decrypted = decrypt($Encrypted);
?>

<a href="index.php?id=<?php echo $Encrypted?>">Enkrip</a>
<a href="index.php?id=<?php echo $Decrypted?>">Dekript</a>

Foto sebelum dan sesudah di enkrip: