Higher Traffic With Better SEO Rangking

Permanent Links

Thursday, November 24, 2011

Algoritma RC4 dengan menggunkan JAVA

Tampilan Program


Dalam membuat program ENKRIPSI dengan metode Algoritma RC4, ada beberapa method yang di perlukan, antara lain :

  • Method inisialisasi larik
  • Method Padding
  • Method Permutasi
  • Method Enkripsi
  • Method XOR (Untuk melakukan XOR bilangan Biner)
  • Method Dalambit (Yang akan mengubah bilangan Desimal ke Biner)
  • Method ToDesimal (Mengubah Bilangan Biner ke Desimal)


Ada pun Potongan Tiap-tiap method ada di bawah ini :

Construktor


public AlgoritmaRC4() {
        initComponents();
        TaCipherteks.setEditable(false);
        TaPlanteks.setEditable(false);
        Bgenerate.setEnabled(false);
        Tastatus.setEditable(false);
        Tastatus.setText("Generate Belum Ready....!!!\n ISIKAN KATA KUNCI terlebih dahulu");
       
    }


Button Generate



    private void BgenerateActionPerformed(java.awt.event.ActionEvent evt) {
        if (TaKunci.getText().equalsIgnoreCase("")) {
            JOptionPane.showMessageDialog(null, null, "Isikan kata kunci...!!!" JOptionPane.ERROR_MESSAGE);
        }else{
            inisialisasiLarik();
            padding();
            permutasi();
            enkripsi();
            TaCipherteks.setText(cipherTeks);
        }
    }


Method inisialisasi larik



public void inisialisasiLarik(){
        int i;
        S = new int[256];
       
        for (i=0;i<256;i++) {
            S[i] = i;
        }
    }


Method Padding (mengacak nilai nilai yg telah di inisialisasi



public void padding(){
        int i=0;
        char[] karakter;
               
        U = new char[256];
        int j=TaKunci.getText().length();
       
        karakter = new char[j];
        karakter = TaKunci.getText().toCharArray();
       
        if (j <256) {
            while (i<256) {               
                U[i] = karakter[i%j];
                i++;
               
            }
        }
    }


Method Permutasi



public void permutasi(){
        int j=0, i=0;
        int ascii, bantu;
       
        for(i=0;i<256;i++){
            ascii = U[i];
            j = (j + S[i] + ascii)%256;
           
            bantu = S[i];
            S[i] = S[j];
            S[j] = bantu;
        }
    }


Method Enkripsi



public void enkripsi(){
       
        int i = 0, j = 0;
        int index,bantu,t,k,c;
        P = TaPlanteks.getText().toCharArray();
      
        for(index = 0;index <TaPlanteks.getText().length();index++){
           
            i = (i + 1)%256;
            j = (j + S[i])%256;
           
            bantu = S[i];
            S[i] = S[j];
            S[j] = bantu;
           
            t = (S[i] + S[j]) % 256;
            k = S[t];
           
            System.out.println("test");
            try {
                exor(k,P[index]); //memanggil method exor dengan membawa nilai k, dan P dengan index sekian
    
            } catch (Exception e) {
                System.out.println("pesan eror exor : "+e);
            }
           
        }
    }


Method EXOR (Untuk melakukan XOR bilangan biner)



private void exor(int k, char c) {
        int i = 0;
        int tampung;
        char x = (char) k;
        char[] kun;
        char binerdesimal;
       
        kun = new char[8];
       
        char[] pla;
        pla = new char[8];
       
        String biner = "";
        String kunci = dalambit(Integer.toBinaryString(x));
        String plain = dalambit(Integer.toBinaryString(c));
       
       
        kun = kunci.toCharArray();
       
       
        pla = plain.toCharArray();
       
        while(i < 8){
           
            if (kun[i] == pla[i]) {
                biner = biner+"0";
            }
            else
                biner = biner+"1";
           
            i++;
        }
       
        tampung = todesimal(biner,biner.length());
        binerdesimal = (char) tampung;
        cipherTeks = cipherTeks + String.valueOf(binerdesimal);
    }


Method dalamBit (Mengubah bilangan desimal ke dalam biner)



private String dalambit(String toBinaryString) {
        String hasil = "";
        String tampung = toBinaryString;
       
        if(tampung.length()<4){
            hasil = "00000"+tampung;
        }
        else if(tampung.length()<5){
            hasil = "0000"+tampung;
        }
        else if(tampung.length()<6){
            hasil = "000"+tampung;
        }
        else if(tampung.length()<7){
            hasil = "00"+tampung;
        }
        else if(tampung.length()<8){
            hasil = "0"+tampung;
        }
        else if(tampung.length()<9){
            hasil = tampung;
        }
       
        return hasil;
    }


Method toDesimal (Mengubah bilangan biner ke desimal)



private int todesimal(String biner, int length) {
        int hasil=0;
        int pangkat;
       
        char[] tampung;
        int tampungstring;
        String tampungchar;
        tampung = new char[length];
        tampung = biner.toCharArray();
       
        for(int i=0;i<length;i++){
            pangkat = 1;
            tampungchar = Character.toString(tampung[i]);
            tampungstring = Integer.parseInt(tampungchar);
           
            for(int j=length-1;j>i;j--){
                pangkat = pangkat * 2;
            }
            if (tampung[i]=='1') {
               
                hasil = hasil+1*pangkat;
            }
        }
        return hasil;
    }

14 comments:

  1. boleh minta full code untuk programnya?
    saya lagi ngerjain tugas algoritma ini dan butuh pencerahan untuk mengembangkannya.
    kalo boleh, email saya di edi_vanjat@yahoo.com
    makasih banyak....

    ReplyDelete
  2. saya juga donk email: andriyansyh04@ymail.com

    ReplyDelete
  3. Mantaaap Bagus Banget Om,,,
    Boleh sy nyicip???
    Buat tugas kuliah niiih pusing banget...

    email sy om : yogie.suardi@gmail.com

    ReplyDelete
  4. boleh minta source codenya ?

    ReplyDelete
  5. minta sourc code nya gan
    chokysaputra92@gmail.com

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. boleh minta full code nya gan
    email: bimaklt@gmail.com
    thanks

    ReplyDelete
  8. minta fullcodenya ya gan zaqimz@gmail.com

    ReplyDelete
  9. saya juga boleh mintak full codenya?? email saya nanamunzir@gmail.com

    ReplyDelete
  10. tolong kirim source codenya ke email stefhanie.tendean@gmail.com. Thanks

    ReplyDelete
  11. boleh minta source code nya rickyleonardimanurung@gmail.com
    terima kasih

    ReplyDelete
  12. boleh minta source code full nya edysk23@gmail.com
    terima kasih

    ReplyDelete
  13. boleh minta full source codenya gan ? via email : bullbarca29@gmail.com
    Terima Kasih Sebelumnya

    ReplyDelete
  14. Boleh minta source codenya gan? via email : fanny.julianto123@gmail.com
    Terima kasih banyak gan sebelumnya

    ReplyDelete