Skip to content

Instantly share code, notes, and snippets.

@raziyeaydin
Created December 24, 2013 17:18
Show Gist options
  • Save raziyeaydin/8115865 to your computer and use it in GitHub Desktop.
Save raziyeaydin/8115865 to your computer and use it in GitHub Desktop.
import java.util.ArrayList;
import javax.swing.JOptionPane;
import java.awt.Component;
//import java.math.BigInteger;
import java.math.*;
import java.util.Arrays;
import java.util.List;
public class Deneme {
static ArrayList<Integer> ascii_liste = new ArrayList<Integer>();
static ArrayList<String> mesaj_liste = new ArrayList<String>();
static ArrayList<Integer> sifrelenmis_ascii_liste = new ArrayList<Integer>();
static ArrayList<Integer> Aliste = new ArrayList<Integer>();
static ArrayList<Integer> Sliste = new ArrayList<Integer>();
static ArrayList<String> sifrelenmis_liste = new ArrayList<String>();
static ArrayList<String> mesaj_harf_liste = new ArrayList<String>();
static ArrayList<String> mesaj_liste2 = new ArrayList<String>();
//static Object sifrelenmis_liste = new Object[1000];
static Integer p, q, e, n, phi_n,sonuc, taban, us,eleman,d, sayi;
static String mesaj, k,toplu_mesaj;
static BigInteger uslu ;
static char dizi[], mesaj_harf[], harf , harf2;//sifrelenmis_liste[]
static void kullanicidan_Al(){
String asal1, asal2, asal3;
asal1 = JOptionPane.showInputDialog("p asal sayınızı girin");
p=Integer.parseInt(asal1);
asal2 = JOptionPane.showInputDialog("q asal sayınızı girin");
q = Integer.parseInt(asal2);
asal3 = JOptionPane.showInputDialog("e asal sayınızı girin");
e = Integer.parseInt(asal3);
}
static int n_Hesapla(int x, int y){
n = x*y ;
return n;
}
static int phi_n_Hesapla(int x, int y){
phi_n = (x-1)*(y-1) ;
return phi_n ;
}
static String mesaj_Al(){
mesaj = JOptionPane.showInputDialog("şifrelenecek mesajınızı yazınız");
return mesaj;
}
/*static ArrayList mesaj_harf(){
char mesaj_harf[];
String karakter ;
mesaj_harf = mesaj.toCharArray();
for(int i =0 ; i < mesaj.length() ; i++ ){
harf = (char)mesaj_harf[i];
mesaj_harf_liste.add(harf);
}
return mesaj_harf_liste ;
/*
char[] mesaj_liste2 = mesaj.toCharArray();
String harf ;
for(int i=0 ; i<mesaj_liste.length ; i++){
mesaj_harf = mesaj_liste[i];
harf = Character.toString(mesaj_harf);
mesaj_harf_liste.add(harf);
}
*/
//return mesaj_liste2 ;
//return mesaj_harf_liste ;
static ArrayList ascii_liste(String k){
char harf;
int ascii ;
char mesaj_liste[] = k.toCharArray(); // dizi oluşturulmuş
for(int i=0 ; i < mesaj_liste.length ; i++){
harf = mesaj_liste[i];
ascii = (int)(harf);
ascii_liste.add(ascii);
}
return ascii_liste ;
//JOptionPane.showMessageDialog(null, ascii_liste); void olursa
}
static void us_Alma(){
us = e;
sonuc = 1;
for(int i = 0 ; i < ascii_liste.size() ; i++ ){
//ascii_liste = Arrays.asList(null);
taban = ascii_liste.get(i) ;
for(int k = us ; k > 0 ; k--){
sonuc = taban*sonuc ;
}
eleman = sonuc%(n);
if(eleman<0){
eleman+= n ;
sifrelenmis_ascii_liste.add(eleman);
}
else{
sifrelenmis_ascii_liste.add(eleman);
}
}
//return sifrelenmis_liste ;
//JOptionPane.showMessageDialog(null, sonuc);
//JOptionPane.showMessageDialog(null, sifrelenmis_liste,"ŞİFRELİ_METİN",JOptionPane.PLAIN_MESSAGE);
}
/*static void sifreli_Metni_Goster(){
for(int i=0 ; i < sifrelenmis_ascii_liste.size() ; i++){
sayi = sifrelenmis_ascii_liste.get(i);
sifrelenmis_liste.add((char)(sayi));
}
//return sifrelenmis_liste;
//JOptionPane.showMessageDialog(null, "şifreli mesaj"+sifrelenmis_liste);
}
*/
/* static void bilinmeyen_d(){
boolean durum = false ;
d=2;
while(durum){
if((e*d)%phi_n==1){
durum=true ;
}
else{
d++;
}
}
System.out.println(d);
}
*/
/* static void sifre_Cozme(){
}
*/
static void yazdir(){
System.out.println("p="+p+"\nq="+q+"\ne="+e+"\nphi_n="+phi_n+"\nn="+n);
System.out.println("mesaj_metniniz= "+mesaj);
System.out.println("metnin_harf_listesi= "+mesaj_harf_liste);
System.out.println("metnin_ascii_listesi= "+ascii_liste);
System.out.println("şifreli_ascii_listesi= "+sifrelenmis_ascii_liste);
System.out.println("şifreli_harf_listesi= "+sifrelenmis_liste);
//toplu_mesaj = ("p="+p+" q="+q+" e="+e+" phi_n="+phi_n+" n="+n);
//JOptionPane.showMessageDialog(null, toplu_mesaj);
//JOptionPane.showMessageDialog(null, "mesaj metniniz= "+mesaj);
//JOptionPane.showMessageDialog(null, "ascii_liste ="+ascii_liste);
//JOptionPane.showMessageDialog(null, "şifreli_liste= "+sifrelenmis_liste);
}
public static void main(String[] args) {
kullanicidan_Al();
n_Hesapla(p,q);
phi_n_Hesapla(p,q);
k = mesaj_Al();
Aliste = ascii_liste(k);
//Sliste = us_Alma();
us_Alma();
//sifreli_Metni_Goster();
yazdir();
//mesaj_harf();
//bilinmeyen_d();
}
}
/* EKRAN ÇIKTILARI
p=7
q=5
e=2
phi_n=24
n=35
mesaj_metniniz= raziye aydin
ascii_liste= [114, 97, 122, 105, 121, 101, 32, 97, 121, 100, 105, 110]
şifreli_liste= [11, 4, -8, -29, -34, 25, -15, 28, -23, 24, 31, -30]
negatif bir sayı olmamalı
if(eleman<0){
eleman+= n ; kod satırından sonra
sifrelenmis_liste.add(eleman);
p=7
q=5
e=2
phi_n=24
n=35
mesaj_metniniz= raziye aydin
ascii_liste= [114, 97, 122, 105, 121, 101, 32, 97, 121, 100, 105, 110]
şifreli_liste= [11, 4, 27, 27, 6, 6, 1, 1, 25, 20, 20, 28, 12, 12, 24, 31, 5, 5]
çift yazılanlar fazlalık
bu fazlalığı düzeltmek için
eleman = sonuc%(n);
if(eleman<0){
eleman+= n ;
sifrelenmis_liste.add(eleman);
}
else{
sifrelenmis_liste.add(eleman);
} kodu şu şekilde güncelleyince
p=7
q=5
e=2
phi_n=24
n=35
mesaj_metniniz= raziye aydin
ascii_liste= [114, 97, 122, 105, 121, 101, 32, 97, 121, 100, 105, 110]
şifreli_liste= [11, 4, 27, 6, 1, 25, 20, 28, 12, 24, 31, 5]
p=7
q=5
e=3
phi_n=24
n=35
mesaj_metniniz= raziye aydin
metnin_ascii_listesi= [114, 97, 122, 105, 121, 101, 32, 97, 121, 100, 105, 110]
şifreli_ascii_listesi= [29, 27, 0, 28, 25, 21, 2, 6, 0, 2, 8, 6]
p=11
q=7
e=3
phi_n=60
n=77
mesaj_metniniz= abcdefghijklmnoprstuvyz
metnin_ascii_listesi= [97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 121, 122]
şifreli_ascii_listesi= [69, 33, 36, 73, 24, 8, 20, 15, 40, 1, 22, 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
hem yazdığımız metnin karakterlerine ayrılmış halini hem de şifrelendikten sonra
hangi karakterlere karşılık geldiğini görmek istiyoruz.
mesaj_harf = mesaj.toCharArray();
for(int i =0 ; i < mesaj.length() ; i++ ){
harf = mesaj_harf[i];
karakter = Character.toString(harf);
mesaj_harf_liste.add(karakter); kod satırından sonra
p=7
q=5
e=3
phi_n=24
n=35
mesaj_metniniz= raziye aydin
metnin_harf_listesi= [] //mesajımız karakterlerine ayrılmamış
metnin_ascii_listesi= [114, 97, 122, 105, 121, 101, 32, 97, 121, 100, 105, 110]
şifreli_ascii_listesi= [29, 27, 0, 28, 25, 21, 2, 6, 0, 2, 8, 6]
şifreli_harf_listesi= [29, 27, 0, 28, 25, 21, 2, 6, 0, 2, 8, 6] //şifrelenen mesaj
//karakter karşılıkları görünmemiş
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment