Tujuan Encoding adalah mengubah data yang dapat digunakan oleh berbagai macam sistim secara tepat dan aman. Seperti mengirimkan data yang berbentuk biner lewat email (seperti attachment), menyimpan data biner ke dalam database atau menampilkan karakter-karakter special pada halaman web atau media lainnya. Biasanya data itu diterjemahkan kedalam karakter sesuai dengan tipe yang digunakan.
Fokusnya pada bagaimana mengubah data dari satu sistem ke sistem lain secara benar. Datanya sendiri tidak disandikan, jadi datanya seperti apa adanya hanya bentuknya berbeda. Pada saat proses melakukan Encoding biasanya akan digunakan cara yang sudah tersedia secara umum. Jadi data diubah oleh algoritma yang sama, baik untuk merubah atau mengembalikan lagi data itu seperti semula. Semua itu dilakukan tanpa perlu adanya kunci, asal tahu algoritma mana yang digunakan. Data yang sudah di-Encoding akan bisa di-Decoding.
Hashing
Tugas utama Hashing adalah untuk memastikan integritas (keutuhan). Maksudnya seperti apa ya? Contohnya, kita ada sebuah file. Dengan di-Hashing kita akan memdapatkan nilai tertentu sebagai bagian integritas file tersebut. Apabila file itu dirubah, maka nilainya tidak akan sama lagi dengan Hashing pertama. Jadi kita bisa tahu ini bukan file yang sama, ini yang kita sebuat integritas dari sebuah file. Kita bisa lihat cara ini digunakan oleh Git.
Penerapan umum dari Hashing ini terlihat pada saat kita melakukan Authentication. Pada saat kita login, yang dikirim ke server adalah hash yang akan dibandingkan dengan hash yang sudah ada di server. Jadi kita tidak pernah mengirim user-name dan password lewat jaringan, yang ada kemungkinan disadap.
Dan cara yang sama ketika kita mengirim pesan yang sudah sudah di-Encryption dengan private-key. Kita kirim pesan itu disertai private-key yang di-hash. Di sisi server hash itu dicocokan dengan yang ada di-server. Kalau valid maka paket itu akan bisa dibuka.
Banyak algoritma untuk melakukan Hashing, seperti SHA, MD5, bycrpt dan lainnya. Dengan kemajuan hardware dan trik baru dalam math banyak dari algoritma ini sudah bisa di akali. Tetap waspada juga.
Encryption
Encryption adalah cara megubah data menjadi data tidak dapat dibaca tanpa potongan kode (baca: key)-nya. Dengan begitu pesan tersebut hanya bisa dibaca oleh orang yang memiliki pesan yang integritasnya valid dan memiliki key-nya.
Prosesnya terlihat sederhana. Sebuah pesan dikonjugsikan dengan algoritma dan key yang akan menghasilkan pecahan karakter yang cukup rumit. Untuk membaca pesan itu, akan sama kita perlu key, algoritma dan pesan yang ter-Encryption. Mirip seperti Encoding alurnya, tapi key diperlukan dan memainkan peranan penting.
Dalam beberapa algoritma, biasanya juga ditambahkan Hashing sebagai bagian prosesnya. Pilihannya juga banyak, dari AES, Blowfish, RSA dan lainnya.

Comments
Post a Comment