Senin, 26 Desember 2016

Teknik Penerapan Enkripsi RSA ada File Biner

Pada tulisan sebelumnya
http://www.softscients.web.id/2016/12/teknik-penerapan-enkripsi-rsa-untuk.html
kita telah mempelajari teknik enkripsi text dengan RSA, apakah kita melakukan enkripsi sebuah file biner? Seperti *.jpg, *.bmp, *.exe,*.bin menggunakan RSA?
Kamu bisa membaca ini http://www.softscients.web.id/2016/12/encrypt-file-using-rsa-java.html
Walau tidak efektif sih sebenarnya karena bisa menjadi bengkak ukuran file nya. Kita harus mengerti dari format base64 sebagai berikut:
https://blog.aldebaran.web.id/2016/01/03/120/
https://hxpinter.wordpress.com/2011/06/21/enkripsi-data-dan-script-dengan-php-part-base64/

pada contoh berikut, ada sebuah file *.txt akan dibaca secara biner


Dalam format base64 menjadi berikut
aW5pIGFkYWxhaCBjb250b2ggZmlsZSAqLnR4dCA=

karakter diatas, bisa anda kirimkan via email atau protokol lainnya walaupun berbentuk *.exe sekalipun (pada contoh diatas agar lebih mudah menggunakan file *.txt saja dulu)
karena berbentuk string diatas, maka transfer antar protokol menjadi mudah, berikut class yang berfungsi untuk membaca file binary menjadi sebuah string base64




//Encode64.java
public class Encode64 {
    public static String read(Path path)
    {     
        byte[] data = null;
        try {
            data = Files.readAllBytes(path);
        } catch (IOException ex) {
            Logger.getLogger(Encode64.class.getName()).log(Level.SEVERE, null, ex);
        }
        //ubah ke mode 64
        return DatatypeConverter.printBase64Binary(data);
    }
    public static byte [] bas64tobyte(String encoded)
    {
        return  DatatypeConverter.parseBase64Binary(encoded);
    }
}



 


Pada contoh berikut, kita akan membaca file *.txt kemudian menampilkan dalam format string dan melakukannya convert byte untuk ditulis kembali menjadi format biner nya




//Cara penggunaan nya sebagai berikut
try
{
 Path path = Paths.get("E:/file.txt"); 
 //ubah ke mode 64
 String str64 = Encode64.read(path); //dianggap menjadi file biner!
 System.out.println(str64);
 byte[] decoded = Encode64.bas64tobyte(str64);
 FileOutputStream fos = new FileOutputStream("E:/file2.txt");
 fos.write(decoded);
 fos.close();

}catch (Exception ept)
{
 System.out.println(ept.getMessage());
}



 
Menggunakan cara yang sama pada link berikut http://www.softscients.web.id/2016/12/teknik-penerapan-enkripsi-rsa-untuk.html.
Sebaiknya kamu baca cara kerja encode decode string di RSA melalui link diatas!
Pada contoh berikut, penulis terapkan untuk proses enkripsi file berformat *.txt
file.txt adalah file asli ukuran semula 29 bytes
menjadi file2.txt  setelah di enkripsi menjadi 480 bytes


Lumayan bengkak hampir 16% lebih tinggi. Sehingga bila ukuran file besar, maka akan cukup lama juga. Sehingga RSA menjadi tidak efisien
Posting Komentar