You are on page 1of 3

/*

* To change this license header, choose License Headers in Project Properties.


* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cbc_enkripsi;
import java.util.Scanner;
/**
*
* @author Bertho Erizal
*/
public class Cbc_enkripsi {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {


// TODO code application logic here
Scanner keyboard = new Scanner(System.in);
String board;
String key;
String iv;
int ivdecimal, keydecimal;
int size,sizebiner;
int e,e2;
String biner_e,biner_e2;
String[] biner=new String[100];
int[] decimal=new int[100];
System.out.print("Masukkan kata = "); board=keyboard.next();
System.out.print("Masukkan key = "); key=keyboard.next();
System.out.print("Masukkan iv = "); iv=keyboard.next();

//mengubah string menjadi char dalam bentuk array


char[] new_board=board.toCharArray();
size=new_board.length;
for(int i=0;i<size;i++){
System.out.println("Data ["+i+"] = "+new_board[i]);
}
System.out.println();

//mengubah karakter menjadi biner (string)


for(int i=0;i<size;i++){
biner[i]=(Integer.toBinaryString(new_board[i]));
System.out.println(new_board[i]+" = "+biner[i]);
}
System.out.println();

//mengubah ke biner ke bentuk desimal


for(int i=0;i<size;i++){
decimal[i]=Integer.parseInt(biner[i],2);
}
//mengubah iv biner menjad idesimal
ivdecimal=Integer.parseInt(iv,2);
//melakukan xor desimal dari karakter pertama dengan desimal dari iv
e=decimal[0]^ivdecimal;
//mengubah desimal ke biner (string) dari hasil xor
biner_e=Integer.toBinaryString(e);
System.out.println(biner[0]+" ^ "+iv+" = "+biner_e);
//mengubah biner_e menjadi bentuk desimal
e2=Integer.parseInt(biner_e,2);
//mengubah kunci biner menjadi bentuk desimal
keydecimal=Integer.parseInt(key,2);
//melakukan xor desimal dari fungsi e2 dengan desimal dari key
e2=e2^keydecimal;
biner_e2=Integer.toBinaryString(e2);
System.out.println(biner_e+" ^ "+key+" = "+biner_e2);

//convrt sring tu o array


System.out.println();
char[] left_e=biner_e2.toCharArray();
sizebiner=left_e.length;
for(int i=0;i<sizebiner;i++){
System.out.print(left_e[i]+" ");
}

//GESER KE KIRI
System.out.println();
char temp = left_e[0];
for(int i=0;i<=3;i++)
{
left_e[i] = left_e[i+1]; //move all element to the left except first
one
}
left_e[4-1] = temp; //assign remembered value to last element

for(int i=0;i<=3;i++){
System.out.print(left_e[i]+" ");
}

int k=0;
char[] right_e=new char[100];
for(int i=4;i<=7;i++){
right_e[k]=left_e[i];
k=k+1;
}

temp = right_e[0];
for(int i=0;i<=3;i++)
{
right_e[i] = right_e[i+1]; //move all element to the left except first
one
}
right_e[4-1] = temp; //assign remembered value to last element

for(int i=0;i<=3;i++){
System.out.print(right_e[i]+" ");
}

k=0;
for(int i=4;i<=7;i++){
left_e[i]=right_e[k];
k=k+1;
}

System.out.println();
System.out.println("Hasil Enkripsi "+new_board[0]+" = ");
for(int i=0;i<=7;i++){
System.out.print(left_e[i]+" ");
}
}
}

You might also like