package twofish;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.InvalidKeyException;
import java.util.logging.Level;
import java.util.logging.Logger;
import twofish.Twofish_Algorithm;
public class TWOFISH {
static String[]arx;
static int lop;
//String getDoc(String al){
//String h="";
// File file = null;
// WordExtractor extractor = null;
// try {
// file = new File(al);
// FileInputStream fis = new FileInputStream(file.getAbsolutePath());
// HWPFDocument document = new HWPFDocument(fis);
// extractor = new WordExtractor(document);
// String[] fileData = extractor.getParagraphText();
// for (int i = 0; i < fileData.length; i++){
// if (fileData[i] != null)
// h+=fileData[i];
// }
// }
// catch (Exception exep){
// exep.printStackTrace();
// }
// return h;
//}
String getDefault(String fileName) throws IOException{
String gab="";
Path path = Paths.get(fileName);
byte[] data = Files.readAllBytes(path); //membaca semua bytes yang ada di object
for(int i=0; i < data.length; i++) {
String al = String.valueOf(data[i] & 0xff);
int ii=Integer.parseInt(al);
char c=(char)ii;
gab=gab+c;
}
BufferedReader be = null;
String current;
be = new BufferedReader(new FileReader(fileName));
while ((current = be.readLine()) != null) {
gab += current;
}
return gab;
}
static String getNF(String fileName){
int dot = fileName.lastIndexOf(".");
int sep = fileName.replace("\\", "/").lastIndexOf("/");
String NF=fileName.substring(sep + 1, dot);
String extendeed= fileName.substring(dot + 1);
NF=NF+"."+extendeed;
return NF;
}
static String getExt(String fileName){
int dot = fileName.lastIndexOf(".");
String extendeed= fileName.substring(dot + 1);
return extendeed;
}
public static void main(String[] args) throws IOException {
TWOFISH x=new TWOFISH();
String ext=".pdf";
String fileName="D:\\wav\\contoh"+ext;
String PASS = "1234567890";
String NF=TWOFISH.getNF(fileName);
String pathnya=fileName.replaceAll(NF, "");
System.out.println("fileName="+fileName);
System.out.println("NF="+NF);
System.out.println("pathnya="+pathnya);
String gab="";
String EXT=TWOFISH.getExt(fileName);
System.out.println("Proses="+EXT);
if(EXT.equalsIgnoreCase("doc")){
gab=x.getDefault(fileName);//getDoc
}
else if(EXT.equalsIgnoreCase("rtf")){
gab=x.getDefault(fileName);
}
else{
gab=x.getDefault(fileName);
}
String enNF=pathnya+"en_"+NF;
System.out.println("enNF="+enNF);
String strEnkrip=TWOFISH.myEnkrip(gab,PASS);
saveString(strEnkrip,enNF);
String dekNF=pathnya+"dec_"+NF;
System.out.println("dekNF="+dekNF);
String strDekrip=TWOFISH.myDekrip(strEnkrip,PASS,dekNF);
saveString(strDekrip,dekNF);
}//main
static String myEnkrip(String PTEXT,String PASS){
int p=PTEXT.length();
int split=16;
if(p>split){
int sisa=p%16;
lop=p/16;
if(sisa>0){lop=lop+1;}
arx=new String[lop];
int awal=0;
for(int l=0;l<lop-1;l++){
int next=(awal+split);
arx[l]=PTEXT.substring(awal,next);
// System.out.println(l+"="+arx[l]+"=="+awal+","+(next));
awal+=split;
}
if(sisa>0){
arx[lop-1]=PTEXT.substring(awal,awal+sisa);
}
}//>16
String gabEnkrip="";
for(int i=0;i<lop;i++){
String cip=TWOFISH.enkrip(arx[i], PASS);
gabEnkrip+=cip;
}
return gabEnkrip;
}
static String myDekrip(String gabEnkrip,String PASS,String newfileName){
String gabDek="";
int split=16;
int pdek=gabEnkrip.length();
int lopdek=pdek/split;
int awaldek=0;
String[]ard=new String[lopdek];
for(int l=0;l<lopdek-0;l++){
int next=awaldek+split;
ard[l]=gabEnkrip.substring(awaldek,next);
String dek=TWOFISH.dekrip(ard[l], PASS);
//System.out.println(l+"="+ard[l]+"=="+awaldek+","+next+"=="+dek);
gabDek+=dek.trim();
awaldek+=split;
}
return gabDek;
}
static String enkrip(String PTEXT,String PASS){
byte tempKey[] = PASS.getBytes();
byte tempPlainText[] = null;
try{
tempPlainText= PTEXT.getBytes();
}
catch(Exception ee){}
byte key[] = new byte[32];
byte plainText[] = new byte[128];
int i;
for(i=0; i<32;i++){
if(i<tempKey.length) key[i] = tempKey[i];
else key[i] = (byte)0;
}
for(i=0; i<128;i++){
if(i<tempPlainText.length) {
try{
plainText[i] = tempPlainText[i];
}
catch(Exception ee){}
}
else plainText[i] = (byte)0;
}
Object K = null;
try {
K = Twofish_Algorithm.makeKey(key);
} catch (InvalidKeyException ex) {
Logger.getLogger(TWOFISH.class.getName()).log(Level.SEVERE, null, ex);
}
byte[] ct = Twofish_Algorithm.blockEncrypt(plainText, 0, K);
String cipherText="";
for( i=0;i<ct.length;i++){
cipherText+=String.valueOf((char)ct[i]);
}
return cipherText;
}
static String dekrip(String cipherText,String PASS){
byte tempKey2[] = PASS.getBytes();
byte key2[] = new byte[32];
for(int i=0; i<32;i++){
if(i<tempKey2.length) key2[i] = tempKey2[i];
else key2[i] = (byte)0;
}
char[]arh=cipherText.toCharArray();
byte[]cth=new byte[arh.length];
for(int i=0;i<arh.length;i++){
cth[i]=(byte)(int)arh[i];
}
Object K2 = null;
try {
K2 = Twofish_Algorithm.makeKey(key2);
} catch (InvalidKeyException ex) {
Logger.getLogger(TWOFISH.class.getName()).log(Level.SEVERE, null, ex);
}
byte[] cpt = Twofish_Algorithm.blockDecrypt(cth, 0, K2);//ct
String ot = new String(cpt);
return ot;
}
private void saveData(String dataEncrypt,String mpath) {
String kompress=dataEncrypt;//lz.compress(dataEncrypt, null);
char[]ar2=kompress.toCharArray();
byte[]data3=new byte[ar2.length];
for(int i=0;i<ar2.length;i++){
data3[i]=(byte)(int)ar2[i];
}
try{
this.saveByte(data3,mpath);
} catch (Exception e) {
e.printStackTrace();
}
}
private void saveByte(byte[] dataDecrypt,String fileNameEncrypt) throws IOException {
Path path = Paths.get(fileNameEncrypt);
Files.write(path, dataDecrypt); //creates, overwrites
System.out.println("File Berhasil di dekripsi ! lihat di : " +fileNameEncrypt);
}
static void saveString(String dataEncrypt,String namaFile) {
try {
String content = dataEncrypt;
File file = new File(namaFile);
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Minggu, 05 Januari 2020
Java Code Kriptografi MODULO
run:
Mod Value : 128
Shift Value : 100
Plain Text : Halo Apa Kabar Indonesia 6 Januari 2020
Password : P4$$w0rdsP4$$w0rdsP4$$w0rdsP4$$w0rdsP4$
ENKRIP
Plaintext ke-0 =H =>72-100=-28
Passwords ke-0 =P =>80-100=-20
ch1 + ch2+ opr =-28+-20+100 = 52 MOD 128 =52=4
Plaintext ke-1 =a =>97-100=-3
Passwords ke-1 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-2 =l =>108-100=8
Passwords ke-2 =$ =>36-100=-64
ch1 + ch2+ opr =8+-64+100 = 44 MOD 128 =44=,
Plaintext ke-3 =o =>111-100=11
Passwords ke-3 =$ =>36-100=-64
ch1 + ch2+ opr =11+-64+100 = 47 MOD 128 =47=/
Plaintext ke-4 = =>32-100=-68
Passwords ke-4 =w =>119-100=19
ch1 + ch2+ opr =-68+19+100 = 51 MOD 128 =51=3
Plaintext ke-5 =A =>65-100=-35
Passwords ke-5 =0 =>48-100=-52
ch1 + ch2+ opr =-35+-52+100 = 13 MOD 128 =13=
Plaintext ke-6 =p =>112-100=12
Passwords ke-6 =r =>114-100=14
ch1 + ch2+ opr =12+14+100 = 126 MOD 128 =126=~
Plaintext ke-7 =a =>97-100=-3
Passwords ke-7 =d =>100-100=0
ch1 + ch2+ opr =-3+0+100 = 97 MOD 128 =97=a
Plaintext ke-8 = =>32-100=-68
Passwords ke-8 =s =>115-100=15
ch1 + ch2+ opr =-68+15+100 = 47 MOD 128 =47=/
Plaintext ke-9 =K =>75-100=-25
Passwords ke-9 =P =>80-100=-20
ch1 + ch2+ opr =-25+-20+100 = 55 MOD 128 =55=7
Plaintext ke-10 =a =>97-100=-3
Passwords ke-10 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-11 =b =>98-100=-2
Passwords ke-11 =$ =>36-100=-64
ch1 + ch2+ opr =-2+-64+100 = 34 MOD 128 =34="
Plaintext ke-12 =a =>97-100=-3
Passwords ke-12 =$ =>36-100=-64
ch1 + ch2+ opr =-3+-64+100 = 33 MOD 128 =33=!
Plaintext ke-13 =r =>114-100=14
Passwords ke-13 =w =>119-100=19
ch1 + ch2+ opr =14+19+100 = 133 MOD 128 =133=
Plaintext ke-14 = =>32-100=-68
Passwords ke-14 =0 =>48-100=-52
ch1 + ch2+ opr =-68+-52+100 = -20 MOD 128 =108=l
Plaintext ke-15 =I =>73-100=-27
Passwords ke-15 =r =>114-100=14
ch1 + ch2+ opr =-27+14+100 = 87 MOD 128 =87=W
Plaintext ke-16 =n =>110-100=10
Passwords ke-16 =d =>100-100=0
ch1 + ch2+ opr =10+0+100 = 110 MOD 128 =110=n
Plaintext ke-17 =d =>100-100=0
Passwords ke-17 =s =>115-100=15
ch1 + ch2+ opr =0+15+100 = 115 MOD 128 =115=s
Plaintext ke-18 =o =>111-100=11
Passwords ke-18 =P =>80-100=-20
ch1 + ch2+ opr =11+-20+100 = 91 MOD 128 =91=[
Plaintext ke-19 =n =>110-100=10
Passwords ke-19 =4 =>52-100=-48
ch1 + ch2+ opr =10+-48+100 = 62 MOD 128 =62=>
Plaintext ke-20 =e =>101-100=1
Passwords ke-20 =$ =>36-100=-64
ch1 + ch2+ opr =1+-64+100 = 37 MOD 128 =37=%
Plaintext ke-21 =s =>115-100=15
Passwords ke-21 =$ =>36-100=-64
ch1 + ch2+ opr =15+-64+100 = 51 MOD 128 =51=3
Plaintext ke-22 =i =>105-100=5
Passwords ke-22 =w =>119-100=19
ch1 + ch2+ opr =5+19+100 = 124 MOD 128 =124=|
Plaintext ke-23 =a =>97-100=-3
Passwords ke-23 =0 =>48-100=-52
ch1 + ch2+ opr =-3+-52+100 = 45 MOD 128 =45=-
Plaintext ke-24 = =>32-100=-68
Passwords ke-24 =r =>114-100=14
ch1 + ch2+ opr =-68+14+100 = 46 MOD 128 =46=.
Plaintext ke-25 =6 =>54-100=-46
Passwords ke-25 =d =>100-100=0
ch1 + ch2+ opr =-46+0+100 = 54 MOD 128 =54=6
Plaintext ke-26 = =>32-100=-68
Passwords ke-26 =s =>115-100=15
ch1 + ch2+ opr =-68+15+100 = 47 MOD 128 =47=/
Plaintext ke-27 =J =>74-100=-26
Passwords ke-27 =P =>80-100=-20
ch1 + ch2+ opr =-26+-20+100 = 54 MOD 128 =54=6
Plaintext ke-28 =a =>97-100=-3
Passwords ke-28 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-29 =n =>110-100=10
Passwords ke-29 =$ =>36-100=-64
ch1 + ch2+ opr =10+-64+100 = 46 MOD 128 =46=.
Plaintext ke-30 =u =>117-100=17
Passwords ke-30 =$ =>36-100=-64
ch1 + ch2+ opr =17+-64+100 = 53 MOD 128 =53=5
Plaintext ke-31 =a =>97-100=-3
Passwords ke-31 =w =>119-100=19
ch1 + ch2+ opr =-3+19+100 = 116 MOD 128 =116=t
Plaintext ke-32 =r =>114-100=14
Passwords ke-32 =0 =>48-100=-52
ch1 + ch2+ opr =14+-52+100 = 62 MOD 128 =62=>
Plaintext ke-33 =i =>105-100=5
Passwords ke-33 =r =>114-100=14
ch1 + ch2+ opr =5+14+100 = 119 MOD 128 =119=w
Plaintext ke-34 = =>32-100=-68
Passwords ke-34 =d =>100-100=0
ch1 + ch2+ opr =-68+0+100 = 32 MOD 128 =32=
Plaintext ke-35 =2 =>50-100=-50
Passwords ke-35 =s =>115-100=15
ch1 + ch2+ opr =-50+15+100 = 65 MOD 128 =65=A
Plaintext ke-36 =0 =>48-100=-52
Passwords ke-36 =P =>80-100=-20
ch1 + ch2+ opr =-52+-20+100 = 28 MOD 128 =28=
Plaintext ke-37 =2 =>50-100=-50
Passwords ke-37 =4 =>52-100=-48
ch1 + ch2+ opr =-50+-48+100 = 2 MOD 128 =2=
Plaintext ke-38 =0 =>48-100=-52
Passwords ke-38 =$ =>36-100=-64
ch1 + ch2+ opr =-52+-64+100 = -16 MOD 128 =112=p
~a/71"! lWns[>%3|-.6/61.5t>w A p
DEKRIP
Chippertext ke-0 =4 =>52-100=-48
Passwords ke-0 =P =>80-100=-20
ch1 - ch2 + opr =-48--20+100 = -28 MOD 128 =100=H
Chippertext ke-1 =1 =>49-100=-51
Passwords ke-1 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-2 =, =>44-100=-56
Passwords ke-2 =$ =>36-100=-64
ch1 - ch2 + opr =-56--64+100 = 8 MOD 128 =8=l
Chippertext ke-3 =/ =>47-100=-53
Passwords ke-3 =$ =>36-100=-64
ch1 - ch2 + opr =-53--64+100 = 11 MOD 128 =11=o
Chippertext ke-4 =3 =>51-100=-49
Passwords ke-4 =w =>119-100=19
ch1 - ch2 + opr =-49-19+100 = -68 MOD 128 =60=
=>13-100=-87
Passwords ke-5 =0 =>48-100=-52
ch1 - ch2 + opr =-87--52+100 = -35 MOD 128 =93=A
Chippertext ke-6 =~ =>126-100=26
Passwords ke-6 =r =>114-100=14
ch1 - ch2 + opr =26-14+100 = 12 MOD 128 =12=p
Chippertext ke-7 =a =>97-100=-3
Passwords ke-7 =d =>100-100=0
ch1 - ch2 + opr =-3-0+100 = -3 MOD 128 =125=a
Chippertext ke-8 =/ =>47-100=-53
Passwords ke-8 =s =>115-100=15
ch1 - ch2 + opr =-53-15+100 = -68 MOD 128 =60=
Chippertext ke-9 =7 =>55-100=-45
Passwords ke-9 =P =>80-100=-20
ch1 - ch2 + opr =-45--20+100 = -25 MOD 128 =103=K
Chippertext ke-10 =1 =>49-100=-51
Passwords ke-10 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-11 =" =>34-100=-66
Passwords ke-11 =$ =>36-100=-64
ch1 - ch2 + opr =-66--64+100 = -2 MOD 128 =126=b
Chippertext ke-12 =! =>33-100=-67
Passwords ke-12 =$ =>36-100=-64
ch1 - ch2 + opr =-67--64+100 = -3 MOD 128 =125=a
Chippertext ke-13 = =>5-100=-95
Passwords ke-13 =w =>119-100=19
ch1 - ch2 + opr =-95-19+100 = -114 MOD 128 =14=r
Chippertext ke-14 =l =>108-100=8
Passwords ke-14 =0 =>48-100=-52
ch1 - ch2 + opr =8--52+100 = 60 MOD 128 =60=
Chippertext ke-15 =W =>87-100=-13
Passwords ke-15 =r =>114-100=14
ch1 - ch2 + opr =-13-14+100 = -27 MOD 128 =101=I
Chippertext ke-16 =n =>110-100=10
Passwords ke-16 =d =>100-100=0
ch1 - ch2 + opr =10-0+100 = 10 MOD 128 =10=n
Chippertext ke-17 =s =>115-100=15
Passwords ke-17 =s =>115-100=15
ch1 - ch2 + opr =15-15+100 = 0 MOD 128 =128=d
Chippertext ke-18 =[ =>91-100=-9
Passwords ke-18 =P =>80-100=-20
ch1 - ch2 + opr =-9--20+100 = 11 MOD 128 =11=o
Chippertext ke-19 => =>62-100=-38
Passwords ke-19 =4 =>52-100=-48
ch1 - ch2 + opr =-38--48+100 = 10 MOD 128 =10=n
Chippertext ke-20 =% =>37-100=-63
Passwords ke-20 =$ =>36-100=-64
ch1 - ch2 + opr =-63--64+100 = 1 MOD 128 =1=e
Chippertext ke-21 =3 =>51-100=-49
Passwords ke-21 =$ =>36-100=-64
ch1 - ch2 + opr =-49--64+100 = 15 MOD 128 =15=s
Chippertext ke-22 =| =>124-100=24
Passwords ke-22 =w =>119-100=19
ch1 - ch2 + opr =24-19+100 = 5 MOD 128 =5=i
Chippertext ke-23 =- =>45-100=-55
Passwords ke-23 =0 =>48-100=-52
ch1 - ch2 + opr =-55--52+100 = -3 MOD 128 =125=a
Chippertext ke-24 =. =>46-100=-54
Passwords ke-24 =r =>114-100=14
ch1 - ch2 + opr =-54-14+100 = -68 MOD 128 =60=
Chippertext ke-25 =6 =>54-100=-46
Passwords ke-25 =d =>100-100=0
ch1 - ch2 + opr =-46-0+100 = -46 MOD 128 =82=6
Chippertext ke-26 =/ =>47-100=-53
Passwords ke-26 =s =>115-100=15
ch1 - ch2 + opr =-53-15+100 = -68 MOD 128 =60=
Chippertext ke-27 =6 =>54-100=-46
Passwords ke-27 =P =>80-100=-20
ch1 - ch2 + opr =-46--20+100 = -26 MOD 128 =102=J
Chippertext ke-28 =1 =>49-100=-51
Passwords ke-28 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-29 =. =>46-100=-54
Passwords ke-29 =$ =>36-100=-64
ch1 - ch2 + opr =-54--64+100 = 10 MOD 128 =10=n
Chippertext ke-30 =5 =>53-100=-47
Passwords ke-30 =$ =>36-100=-64
ch1 - ch2 + opr =-47--64+100 = 17 MOD 128 =17=u
Chippertext ke-31 =t =>116-100=16
Passwords ke-31 =w =>119-100=19
ch1 - ch2 + opr =16-19+100 = -3 MOD 128 =125=a
Chippertext ke-32 => =>62-100=-38
Passwords ke-32 =0 =>48-100=-52
ch1 - ch2 + opr =-38--52+100 = 14 MOD 128 =14=r
Chippertext ke-33 =w =>119-100=19
Passwords ke-33 =r =>114-100=14
ch1 - ch2 + opr =19-14+100 = 5 MOD 128 =5=i
Chippertext ke-34 = =>32-100=-68
Passwords ke-34 =d =>100-100=0
ch1 - ch2 + opr =-68-0+100 = -68 MOD 128 =60=
Chippertext ke-35 =A =>65-100=-35
Passwords ke-35 =s =>115-100=15
ch1 - ch2 + opr =-35-15+100 = -50 MOD 128 =78=2
Chippertext ke-36 = =>28-100=-72
Passwords ke-36 =P =>80-100=-20
ch1 - ch2 + opr =-72--20+100 = -52 MOD 128 =76=0
Chippertext ke-37 = =>2-100=-98
Passwords ke-37 =4 =>52-100=-48
ch1 - ch2 + opr =-98--48+100 = -50 MOD 128 =78=2
Chippertext ke-38 =p =>112-100=12
Passwords ke-38 =$ =>36-100=-64
ch1 - ch2 + opr =12--64+100 = 76 MOD 128 =76=0
Decrypted Text After Decryption: Halo Apa Kabar Indonesia 6 Januari 2020
BUILD SUCCESSFUL (total time: 0 seconds)
Mod Value : 128
Shift Value : 100
Plain Text : Halo Apa Kabar Indonesia 6 Januari 2020
Password : P4$$w0rdsP4$$w0rdsP4$$w0rdsP4$$w0rdsP4$
ENKRIP
Plaintext ke-0 =H =>72-100=-28
Passwords ke-0 =P =>80-100=-20
ch1 + ch2+ opr =-28+-20+100 = 52 MOD 128 =52=4
Plaintext ke-1 =a =>97-100=-3
Passwords ke-1 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-2 =l =>108-100=8
Passwords ke-2 =$ =>36-100=-64
ch1 + ch2+ opr =8+-64+100 = 44 MOD 128 =44=,
Plaintext ke-3 =o =>111-100=11
Passwords ke-3 =$ =>36-100=-64
ch1 + ch2+ opr =11+-64+100 = 47 MOD 128 =47=/
Plaintext ke-4 = =>32-100=-68
Passwords ke-4 =w =>119-100=19
ch1 + ch2+ opr =-68+19+100 = 51 MOD 128 =51=3
Plaintext ke-5 =A =>65-100=-35
Passwords ke-5 =0 =>48-100=-52
ch1 + ch2+ opr =-35+-52+100 = 13 MOD 128 =13=
Plaintext ke-6 =p =>112-100=12
Passwords ke-6 =r =>114-100=14
ch1 + ch2+ opr =12+14+100 = 126 MOD 128 =126=~
Plaintext ke-7 =a =>97-100=-3
Passwords ke-7 =d =>100-100=0
ch1 + ch2+ opr =-3+0+100 = 97 MOD 128 =97=a
Plaintext ke-8 = =>32-100=-68
Passwords ke-8 =s =>115-100=15
ch1 + ch2+ opr =-68+15+100 = 47 MOD 128 =47=/
Plaintext ke-9 =K =>75-100=-25
Passwords ke-9 =P =>80-100=-20
ch1 + ch2+ opr =-25+-20+100 = 55 MOD 128 =55=7
Plaintext ke-10 =a =>97-100=-3
Passwords ke-10 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-11 =b =>98-100=-2
Passwords ke-11 =$ =>36-100=-64
ch1 + ch2+ opr =-2+-64+100 = 34 MOD 128 =34="
Plaintext ke-12 =a =>97-100=-3
Passwords ke-12 =$ =>36-100=-64
ch1 + ch2+ opr =-3+-64+100 = 33 MOD 128 =33=!
Plaintext ke-13 =r =>114-100=14
Passwords ke-13 =w =>119-100=19
ch1 + ch2+ opr =14+19+100 = 133 MOD 128 =133=
Plaintext ke-14 = =>32-100=-68
Passwords ke-14 =0 =>48-100=-52
ch1 + ch2+ opr =-68+-52+100 = -20 MOD 128 =108=l
Plaintext ke-15 =I =>73-100=-27
Passwords ke-15 =r =>114-100=14
ch1 + ch2+ opr =-27+14+100 = 87 MOD 128 =87=W
Plaintext ke-16 =n =>110-100=10
Passwords ke-16 =d =>100-100=0
ch1 + ch2+ opr =10+0+100 = 110 MOD 128 =110=n
Plaintext ke-17 =d =>100-100=0
Passwords ke-17 =s =>115-100=15
ch1 + ch2+ opr =0+15+100 = 115 MOD 128 =115=s
Plaintext ke-18 =o =>111-100=11
Passwords ke-18 =P =>80-100=-20
ch1 + ch2+ opr =11+-20+100 = 91 MOD 128 =91=[
Plaintext ke-19 =n =>110-100=10
Passwords ke-19 =4 =>52-100=-48
ch1 + ch2+ opr =10+-48+100 = 62 MOD 128 =62=>
Plaintext ke-20 =e =>101-100=1
Passwords ke-20 =$ =>36-100=-64
ch1 + ch2+ opr =1+-64+100 = 37 MOD 128 =37=%
Plaintext ke-21 =s =>115-100=15
Passwords ke-21 =$ =>36-100=-64
ch1 + ch2+ opr =15+-64+100 = 51 MOD 128 =51=3
Plaintext ke-22 =i =>105-100=5
Passwords ke-22 =w =>119-100=19
ch1 + ch2+ opr =5+19+100 = 124 MOD 128 =124=|
Plaintext ke-23 =a =>97-100=-3
Passwords ke-23 =0 =>48-100=-52
ch1 + ch2+ opr =-3+-52+100 = 45 MOD 128 =45=-
Plaintext ke-24 = =>32-100=-68
Passwords ke-24 =r =>114-100=14
ch1 + ch2+ opr =-68+14+100 = 46 MOD 128 =46=.
Plaintext ke-25 =6 =>54-100=-46
Passwords ke-25 =d =>100-100=0
ch1 + ch2+ opr =-46+0+100 = 54 MOD 128 =54=6
Plaintext ke-26 = =>32-100=-68
Passwords ke-26 =s =>115-100=15
ch1 + ch2+ opr =-68+15+100 = 47 MOD 128 =47=/
Plaintext ke-27 =J =>74-100=-26
Passwords ke-27 =P =>80-100=-20
ch1 + ch2+ opr =-26+-20+100 = 54 MOD 128 =54=6
Plaintext ke-28 =a =>97-100=-3
Passwords ke-28 =4 =>52-100=-48
ch1 + ch2+ opr =-3+-48+100 = 49 MOD 128 =49=1
Plaintext ke-29 =n =>110-100=10
Passwords ke-29 =$ =>36-100=-64
ch1 + ch2+ opr =10+-64+100 = 46 MOD 128 =46=.
Plaintext ke-30 =u =>117-100=17
Passwords ke-30 =$ =>36-100=-64
ch1 + ch2+ opr =17+-64+100 = 53 MOD 128 =53=5
Plaintext ke-31 =a =>97-100=-3
Passwords ke-31 =w =>119-100=19
ch1 + ch2+ opr =-3+19+100 = 116 MOD 128 =116=t
Plaintext ke-32 =r =>114-100=14
Passwords ke-32 =0 =>48-100=-52
ch1 + ch2+ opr =14+-52+100 = 62 MOD 128 =62=>
Plaintext ke-33 =i =>105-100=5
Passwords ke-33 =r =>114-100=14
ch1 + ch2+ opr =5+14+100 = 119 MOD 128 =119=w
Plaintext ke-34 = =>32-100=-68
Passwords ke-34 =d =>100-100=0
ch1 + ch2+ opr =-68+0+100 = 32 MOD 128 =32=
Plaintext ke-35 =2 =>50-100=-50
Passwords ke-35 =s =>115-100=15
ch1 + ch2+ opr =-50+15+100 = 65 MOD 128 =65=A
Plaintext ke-36 =0 =>48-100=-52
Passwords ke-36 =P =>80-100=-20
ch1 + ch2+ opr =-52+-20+100 = 28 MOD 128 =28=
Plaintext ke-37 =2 =>50-100=-50
Passwords ke-37 =4 =>52-100=-48
ch1 + ch2+ opr =-50+-48+100 = 2 MOD 128 =2=
Plaintext ke-38 =0 =>48-100=-52
Passwords ke-38 =$ =>36-100=-64
ch1 + ch2+ opr =-52+-64+100 = -16 MOD 128 =112=p
~a/71"! lWns[>%3|-.6/61.5t>w A p
DEKRIP
Chippertext ke-0 =4 =>52-100=-48
Passwords ke-0 =P =>80-100=-20
ch1 - ch2 + opr =-48--20+100 = -28 MOD 128 =100=H
Chippertext ke-1 =1 =>49-100=-51
Passwords ke-1 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-2 =, =>44-100=-56
Passwords ke-2 =$ =>36-100=-64
ch1 - ch2 + opr =-56--64+100 = 8 MOD 128 =8=l
Chippertext ke-3 =/ =>47-100=-53
Passwords ke-3 =$ =>36-100=-64
ch1 - ch2 + opr =-53--64+100 = 11 MOD 128 =11=o
Chippertext ke-4 =3 =>51-100=-49
Passwords ke-4 =w =>119-100=19
ch1 - ch2 + opr =-49-19+100 = -68 MOD 128 =60=
=>13-100=-87
Passwords ke-5 =0 =>48-100=-52
ch1 - ch2 + opr =-87--52+100 = -35 MOD 128 =93=A
Chippertext ke-6 =~ =>126-100=26
Passwords ke-6 =r =>114-100=14
ch1 - ch2 + opr =26-14+100 = 12 MOD 128 =12=p
Chippertext ke-7 =a =>97-100=-3
Passwords ke-7 =d =>100-100=0
ch1 - ch2 + opr =-3-0+100 = -3 MOD 128 =125=a
Chippertext ke-8 =/ =>47-100=-53
Passwords ke-8 =s =>115-100=15
ch1 - ch2 + opr =-53-15+100 = -68 MOD 128 =60=
Chippertext ke-9 =7 =>55-100=-45
Passwords ke-9 =P =>80-100=-20
ch1 - ch2 + opr =-45--20+100 = -25 MOD 128 =103=K
Chippertext ke-10 =1 =>49-100=-51
Passwords ke-10 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-11 =" =>34-100=-66
Passwords ke-11 =$ =>36-100=-64
ch1 - ch2 + opr =-66--64+100 = -2 MOD 128 =126=b
Chippertext ke-12 =! =>33-100=-67
Passwords ke-12 =$ =>36-100=-64
ch1 - ch2 + opr =-67--64+100 = -3 MOD 128 =125=a
Chippertext ke-13 = =>5-100=-95
Passwords ke-13 =w =>119-100=19
ch1 - ch2 + opr =-95-19+100 = -114 MOD 128 =14=r
Chippertext ke-14 =l =>108-100=8
Passwords ke-14 =0 =>48-100=-52
ch1 - ch2 + opr =8--52+100 = 60 MOD 128 =60=
Chippertext ke-15 =W =>87-100=-13
Passwords ke-15 =r =>114-100=14
ch1 - ch2 + opr =-13-14+100 = -27 MOD 128 =101=I
Chippertext ke-16 =n =>110-100=10
Passwords ke-16 =d =>100-100=0
ch1 - ch2 + opr =10-0+100 = 10 MOD 128 =10=n
Chippertext ke-17 =s =>115-100=15
Passwords ke-17 =s =>115-100=15
ch1 - ch2 + opr =15-15+100 = 0 MOD 128 =128=d
Chippertext ke-18 =[ =>91-100=-9
Passwords ke-18 =P =>80-100=-20
ch1 - ch2 + opr =-9--20+100 = 11 MOD 128 =11=o
Chippertext ke-19 => =>62-100=-38
Passwords ke-19 =4 =>52-100=-48
ch1 - ch2 + opr =-38--48+100 = 10 MOD 128 =10=n
Chippertext ke-20 =% =>37-100=-63
Passwords ke-20 =$ =>36-100=-64
ch1 - ch2 + opr =-63--64+100 = 1 MOD 128 =1=e
Chippertext ke-21 =3 =>51-100=-49
Passwords ke-21 =$ =>36-100=-64
ch1 - ch2 + opr =-49--64+100 = 15 MOD 128 =15=s
Chippertext ke-22 =| =>124-100=24
Passwords ke-22 =w =>119-100=19
ch1 - ch2 + opr =24-19+100 = 5 MOD 128 =5=i
Chippertext ke-23 =- =>45-100=-55
Passwords ke-23 =0 =>48-100=-52
ch1 - ch2 + opr =-55--52+100 = -3 MOD 128 =125=a
Chippertext ke-24 =. =>46-100=-54
Passwords ke-24 =r =>114-100=14
ch1 - ch2 + opr =-54-14+100 = -68 MOD 128 =60=
Chippertext ke-25 =6 =>54-100=-46
Passwords ke-25 =d =>100-100=0
ch1 - ch2 + opr =-46-0+100 = -46 MOD 128 =82=6
Chippertext ke-26 =/ =>47-100=-53
Passwords ke-26 =s =>115-100=15
ch1 - ch2 + opr =-53-15+100 = -68 MOD 128 =60=
Chippertext ke-27 =6 =>54-100=-46
Passwords ke-27 =P =>80-100=-20
ch1 - ch2 + opr =-46--20+100 = -26 MOD 128 =102=J
Chippertext ke-28 =1 =>49-100=-51
Passwords ke-28 =4 =>52-100=-48
ch1 - ch2 + opr =-51--48+100 = -3 MOD 128 =125=a
Chippertext ke-29 =. =>46-100=-54
Passwords ke-29 =$ =>36-100=-64
ch1 - ch2 + opr =-54--64+100 = 10 MOD 128 =10=n
Chippertext ke-30 =5 =>53-100=-47
Passwords ke-30 =$ =>36-100=-64
ch1 - ch2 + opr =-47--64+100 = 17 MOD 128 =17=u
Chippertext ke-31 =t =>116-100=16
Passwords ke-31 =w =>119-100=19
ch1 - ch2 + opr =16-19+100 = -3 MOD 128 =125=a
Chippertext ke-32 => =>62-100=-38
Passwords ke-32 =0 =>48-100=-52
ch1 - ch2 + opr =-38--52+100 = 14 MOD 128 =14=r
Chippertext ke-33 =w =>119-100=19
Passwords ke-33 =r =>114-100=14
ch1 - ch2 + opr =19-14+100 = 5 MOD 128 =5=i
Chippertext ke-34 = =>32-100=-68
Passwords ke-34 =d =>100-100=0
ch1 - ch2 + opr =-68-0+100 = -68 MOD 128 =60=
Chippertext ke-35 =A =>65-100=-35
Passwords ke-35 =s =>115-100=15
ch1 - ch2 + opr =-35-15+100 = -50 MOD 128 =78=2
Chippertext ke-36 = =>28-100=-72
Passwords ke-36 =P =>80-100=-20
ch1 - ch2 + opr =-72--20+100 = -52 MOD 128 =76=0
Chippertext ke-37 = =>2-100=-98
Passwords ke-37 =4 =>52-100=-48
ch1 - ch2 + opr =-98--48+100 = -50 MOD 128 =78=2
Chippertext ke-38 =p =>112-100=12
Passwords ke-38 =$ =>36-100=-64
ch1 - ch2 + opr =12--64+100 = 76 MOD 128 =76=0
Decrypted Text After Decryption: Halo Apa Kabar Indonesia 6 Januari 2020
BUILD SUCCESSFUL (total time: 0 seconds)
Dengan code sbb:
package modtwofish;
public class MODULO {
public static int mod=128;//ini adalah moddulus valuenya ...bebas antara 128 sd 255 ambang batas max ascii
public static int opr=100;//65 ini adalah pergeseran Valuenya=bebas antara 0 sd 255
public static void main(String[] args) {
String plainText = "Halo Apa Kabar Indonesia 6 Januari 2020";// Hasil pencarian akan mengarah ke Line Today, Seword, Telset, dan Quora.";//1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";//12345ABCDXYZabcdxyz kekayaan alam yang indah 12345";//DROPIT
String secretKey = "P4$$w0rds";
String gab="";
int x=plainText.length();
int y=secretKey.length();
int p=(x/y)+1;
for(int i=0;i<p;i++){
gab+=secretKey;
}
gab=gab.substring(0, x);
System.out.println("Mod Value : " + mod);
System.out.println("Shift Value : " + opr);
System.out.println("Plain Text : " + plainText);
System.out.println("Password : " + gab);
System.out.println("ENKRIP");
String encryptedText = encrypt(plainText, gab);
System.out.println("Encrypted Text After Encryption: " + encryptedText);
System.out.println("DEKRIP");
String decryptedText = decrypt(encryptedText, gab);
System.out.println("Decrypted Text After Decryption: " + decryptedText);
}
private static String encrypt(String plainText, String secretKey) {
StringBuffer encryptedString = new StringBuffer();
int encryptedInt;
for (int i = 0; i < plainText.length(); i++) {
int ch1=(plainText.charAt(i) - opr);
int ch2=(secretKey.charAt(i) - opr);
int hsl=ch1 + ch2+ opr;
int hsl0=hsl;
if (hsl < 1){
hsl += mod;
}
encryptedInt = (hsl) % mod;
char hasil=(char)encryptedInt;
String st1="Plaintext ke-"+i+" ="+plainText.charAt(i)+" =>"+(int)plainText.charAt(i) +"-"+ opr+"="+ch1;
String st2="Passwords ke-"+i+" ="+secretKey.charAt(i)+" =>"+(int)secretKey.charAt(i) +"-"+ opr+"="+ch2;
String str=" ch1 + ch2+ opr ="+ch1 +"+" +ch2+"+" +opr+" = "+hsl0+" MOD "+mod+" ="+hsl+"="+hasil;
//String str="("+ch1+"-"+opr+")"+"+ch2+"+"+opr+"="+hsl0+"=mod ="+encryptedInt+"="+String.valueOf(hasil);
cetak(st1);
cetak(st2);
cetak(str);
System.out.println("");
encryptedString.append(hasil);
}
return encryptedString.toString();
}
static void cetak(String str){
System.out.println(str);
}
private static String decrypt(String decryptedText, String secretKey) {
StringBuffer decryptedString = new StringBuffer();
int decryptedInt;
for (int i = 0; i < decryptedText.length(); i++) {
int ch1 = (int) (decryptedText.charAt(i) - opr);
int ch2 = (int) (secretKey.charAt(i) - opr);
int hsl = ch1 - ch2;
int hsl0=hsl;
if (hsl < 1){
hsl += mod;
}
decryptedInt=hsl+ opr;
decryptedInt = (decryptedInt) % mod;
char hasil=(char)decryptedInt;
//String str="D"+i+"."+ch1+"-"+ch2+"="+hsl0+"=+mod="+decryptedInt+"="+String.valueOf(hasil);
String st1="Chippertext ke-"+i+" ="+decryptedText.charAt(i)+" =>"+(int)decryptedText.charAt(i) +"-"+ opr+"="+ch1;
String st2="Passwords ke-"+i+" ="+secretKey.charAt(i)+" =>"+(int)secretKey.charAt(i) +"-"+ opr+"="+ch2;
String str=" ch1 - ch2 + opr ="+ch1 +"-" +ch2+"+" +opr+" = "+hsl0+" MOD "+mod+" ="+hsl+"="+hasil;
cetak(st1);
cetak(st2);
cetak(str);
System.out.println("");
//decryptedString.append((char) ((decryptedInt) + (int) 'A'));
decryptedString.append(hasil);
}
return decryptedString.toString();
}
}
Langganan:
Postingan (Atom)

