Lompat ke konten Lompat ke sidebar Lompat ke footer

Perbedaan encoding, encryption dan hashing.

Kembali lagi bersama saya, kali ini saya akan membagikan sedikit pengetahuan tentang perbedaan encoding, encryption dan hashing.
 


1. Encoding

Encoding merupakan sebuah teknik untuk mengubah sebuah data ke bentuk lain, tetapi tidak dimaksudkan untuk merahasiakan sebuah data. Teks yang di encode dapat dengan mudah di decode.
Macam macam encoding di antara lain : Base64 dan ASCII.

Contoh Encode dan Decode :


<?php
$text = "Belajar Encoding di Skakcak";
echo base64_encode($text);
// Hasil : QmVsYWphciBFbmNvZGluZyBkaSBTa2FrY2Fr
?>


<?php
$text = "QmVsYWphciBFbmNvZGluZyBkaSBTa2FrY2Fr";
echo base64_decode($text);
?>

2. Encryption

Encryption merupakan teknik untuk mengubah suatu data ke bentuk yang lain dengan sebuah KEY yang diperlukan untuk dapat men-decrypt data tersebut. Teks yang di encrypt dapat di decrypt atau di kembalikan ke bentuk semula selama orang tersebut mengetahui KEY dari data yang di encrypt tersebut.

Contoh Encrypt dan Decrypt :


<?php

/**

 * Encrypt and decrypt

 *

 * @author Nazmul Ahsan <n.mukto@gmail.com>

 * @link http://nazmulahsan.me/simple-two-way-function-encrypt-decrypt-string/

 *

 * @param string $string string to be encrypted/decrypted

 * @param string $action what to do with this? e for encrypt, d for decrypt

 */

function my_simple_crypt( $string, $action = 'e' ) {

    // you may change these values to your own

    $secret_key = 'my_simple_secret_key';

    $secret_iv = 'my_simple_secret_iv';



    $output = false;

    $encrypt_method = "AES-256-CBC";

    $key = hash( 'sha256', $secret_key );

    $iv = substr( hash( 'sha256', $secret_iv ), 0, 16 );



    if( $action == 'e' ) {

        $output = base64_encode( openssl_encrypt( $string, $encrypt_method, $key, 0, $iv ) );

    }

    else if( $action == 'd' ){

        $output = openssl_decrypt( base64_decode( $string ), $encrypt_method, $key, 0, $iv );

    }



    return $output;

}




$encrypted = my_simple_crypt( 'Belajar encrypt decrypt di skakcak', 'e' );


$decrypted = my_simple_crypt( 'VkdhMkZlVGhpRUdPRXhjZ2lDeWNlRS9sL1hLZFBPYTFlQytvaEp2d29jUGx0RXVKYzdCdDVwd1VUNTdiOTZjSQ==', 'd' );



echo "Encrypted : $encrypted\n";

echo "Decrypted : $decrypted\n";



/*Output :

Encrypted : VkdhMkZlVGhpRUdPRXhjZ2lDeWNlRS9sL1hLZFBPYTFlQytvaEp2d29jUGx0RXVKYzdCdDVwd1VUNTdiOTZjSQ==

Decrypted : Belajar encrypt decrypt di skakcak

*/
?>

3. Hashing
Hasing merupakan teknik mengubah suatu bentuk data ke bentuk yang lain, tetapi data tersebut tidak bisa diubah kembali seperti semula. Hal ini dikarenakan sifat hashing yang 1 arah. Salah satu method hash terpopuler adalah MD-5.

Contoh Hashing :


<?php

echo md5("Belajar hashing di SkakCak");

//Hasil : 7b3d9f3d36cb953fb9ba603f4c964e78

?>


Nah, itulah perbedaan Encoding, Encryption, dan Hashing. Perbedaannya ke tiga nya tidak terlalu banyak. Sampai sini dulu artikel kali ini.

Posting Komentar untuk "Perbedaan encoding, encryption dan hashing."