Cifrario di Cesare
- Code: Select all
/*
* Cesare.java
*/
package cripto;
import java.io.*;
/**
* @author FightingFalcon
*/
public class Cesare {
private String Msg;
private String Codifica;
private int Scostamento;
private String line;
private String Alpha="abcdefghijklmnopqrstuvwxyz";
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
public Cesare() {
Msg="";
Codifica="";
Scostamento=0;
}
public void Acquisisci(){
try{
do{
System.out.println("Inserisci il messaggio:");
line=input.readLine();
Msg=(line);
if(Msg.length()==0)System.out.println("Errore lunghezza messaggio");
}while(Msg.length()==0);
do{
System.out.println("Inserisci lo scostamento");
line=input.readLine();
Scostamento=Integer.parseInt(line);
if((Scostamento>26))System.out.println("Errore lunghezza messaggio");
}while(Scostamento>26);
Msg=Msg.toLowerCase();
}catch(Exception e){
System.out.println("Errore d'acquisizione "+e);
}
}
public String Codifica(){
int I=0;
int Ind=0;
char c;
while(I<Msg.length()){
c=Msg.charAt(I);
Ind=Alpha.indexOf(c);
Ind=Ind+Scostamento;
if(Ind>25)Ind=Ind-25;
Codifica=Codifica+Alpha.charAt(Ind);
I++;
Ind=0;
}
return Codifica;
}
}
Cifrario di Vigenère
- Code: Select all
/*
* Vigenère.java
*/
package cripto;
import java.io.*;
/**
* @author FightingFalcon
*/
public class Vigenère {
private String Msg;
private String Codifica;
private String Verme;
private String line;
private String Alpha="abcdefghijklmnopqrstuvwxyz";
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
public Vigenère() {
Codifica="";
Msg="";
Verme="";
}
public void Acquisisci(){
try{
do{
System.out.println("Inserisci il messaggio:");
line=input.readLine();
Msg=(line);
if(Msg.length()==0)System.out.println("Errore lunghezza messaggio");
}while(Msg.length()==0);
do{
System.out.println("Inserisci il verme:");
line=input.readLine();
Verme=(line);
if(Verme.length()==0)System.out.println("Errore lunghezza verme");
}while(Verme.length()==0);
if(Verme.length()<Msg.length()){
int I=0;
while(Verme.length()<Msg.length()){
Verme=Verme+Verme.charAt(I);
I++;
}
}
}catch(Exception e){
System.out.println("Errore d'acquisizione "+e);
}
}
public String Codifica(){
int I,K,Ind;
char c,s;
if(Msg.length()==0){
return "";
}else{
Msg=Msg.toLowerCase();
Verme=Verme.toLowerCase();
for(I=0;I<Msg.length();I++){
Ind=0;
c=Msg.charAt(I);
if(c!=' '){
Ind=Alpha.indexOf(c);
switch(c){
case 'a':
Ind=1;
break;
case 'b':
Ind=2;
break;
case 'c':
Ind=3;
break;
case 'd':
Ind=4;
break;
case 'e':
Ind=5;
break;
case 'f':
Ind=6;
break;
case 'g':
Ind=7;
break;
case 'h':
Ind=8;
break;
case 'i':
Ind=9;
break;
case 'j':
Ind=10;
break;
case 'k':
Ind=11;
break;
case 'l':
Ind=12;
break;
case 'm':
Ind=13;
break;
case 'n':
Ind=14;
break;
case 'o':
Ind=15;
break;
case 'p':
Ind=16;
break;
case 'q':
Ind=17;
break;
case 'r':
Ind=18;
break;
case 's':
Ind=19;
break;
case 't':
Ind=20;
break;
case 'u':
Ind=21;
break;
case 'v':
Ind=22;
break;
case 'w':
Ind=23;
break;
case 'x':
Ind=24;
break;
case 'y':
Ind=25;
break;
case 'z':
Ind=26;
break;
default:
break;
}
if(Ind>25)Ind=Ind-25;
s=Alpha.charAt(Ind);
Codifica=Codifica+s;
}
}
return Codifica;
}
}
}
Codifica di Vernam
- Code: Select all
/*
* Vernam.java
*/
package cripto;
import java.io.*;
/**
* @author FightingFalcon
*/
public class Vernam {
private String Msg;
private String Codifica;
private String Chiave;
private String line;
private String Alpha="abcdefghijklmnopqrstuvwxyz";
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
public Vernam() {
Codifica="";
Msg="";
Chiave="";
}
public void Acquisisci(){
try{
do{
System.out.println("Inserisci il messaggio:");
line=input.readLine();
Msg=(line);
if(Msg.length()==0)System.out.println("Errore lunghezza messaggio");
}while(Msg.length()==0);
do{
System.out.println("Inserisci la chiave:");
line=input.readLine();
Chiave=(line);
if(Chiave.length()==0)System.out.println("Errore lunghezza della chiave");
}while(Chiave.length()==0);
if(Chiave.length()<Msg.length()){
int I=0;
while(Chiave.length()<Msg.length()){
Chiave=Chiave+Chiave.charAt(I);
I++;
}
}
}catch(Exception e){
System.out.println("Errore d'acquisizione "+e);
}
}
public String Codifica(){
int I,K,Ind;
char c,s;
if(Msg.length()==0){
return "";
}else{
Msg=Msg.toLowerCase();
Chiave=Chiave.toLowerCase();
for(I=0;I<Msg.length();I++){
Ind=0;
c=Msg.charAt(I);
if(c!=' '){
Ind=Alpha.indexOf(c)+1;
switch(c){
case 'a':
Ind=Ind+0;
break;
case 'b':
Ind=Ind+1;
break;
case 'c':
Ind=Ind+2;
break;
case 'd':
Ind=3;
break;
case 'e':
Ind=4;
break;
case 'f':
Ind=5;
break;
case 'g':
Ind=6;
break;
case 'h':
Ind=7;
break;
case 'i':
Ind=8;
break;
case 'j':
Ind=9;
break;
case 'k':
Ind=10;
break;
case 'l':
Ind=11;
break;
case 'm':
Ind=12;
break;
case 'n':
Ind=13;
break;
case 'o':
Ind=14;
break;
case 'p':
Ind=15;
break;
case 'q':
Ind=16;
break;
case 'r':
Ind=17;
break;
case 's':
Ind=18;
break;
case 't':
Ind=19;
break;
case 'u':
Ind=20;
break;
case 'v':
Ind=21;
break;
case 'w':
Ind=22;
break;
case 'x':
Ind=23;
break;
case 'y':
Ind=24;
break;
case 'z':
Ind=25;
break;
default:
break;
}
if(Ind>=25)Ind=Ind-25;
s=Alpha.charAt(Ind);
Codifica=Codifica+s;
}
}
return Codifica;
}
}
}
La più bella...Crittografia di Pollux(Si basa sul codice Morse e sui Numeri Random)
- Code: Select all
/*
* Pollux.java
*/
package cripto;
import java.io.*;
import java.math.*;
import java.util.Random;
/**
* @author FightingFalcon
*/
public class Pollux {
private String Msg;
private String Codifica;
private String line;
private char Alpha[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
private String Morse[]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
private int Punt[]=new int[3];
private int Lin[]=new int [4];
private char Spaz[]={'+'};
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
public Pollux() {
for(int I=0;I<3;I++){
boolean trovato=false;
double k=Math.random()*10;
int a=(int)k;
while(trovato==false){
int z=0;
while(z<=I && a!=Punt[z]){
z++;
}
if(z>I){
Punt[I]=a;
trovato=true;
}
}
}
for(int I=0;I<4;I++){
int a=0;
boolean trovato=false;
while(trovato==false){
double k=Math.random()*10;
a=(int)k;
int z=0;
while(z<Punt.length && a!=Punt[z]){
z++;
}
if(z==Punt.length){
z=0;
while(z<=I && a!=Lin[z]){
z++;
}
if(z>I){
Lin[I]=a;
trovato=true;
}
}
}
}
for(int I=0;I<Lin.length;I++)System.out.println("Line "+Lin[I]);
for(int I=0;I<Punt.length;I++)System.out.println("Punti "+Punt[I]);
Msg="";
Codifica="";
}
public void Acquisisci(){
try{
do{
System.out.println("Inserisci il messaggio:");
line=input.readLine();
Msg=(line);
if(Msg.length()==0)System.out.println("Errore lunghezza messaggio");
}while(Msg.length()==0);
Msg=Msg.toLowerCase();
}catch(Exception e){
System.out.println("Errore d'acquisizione "+e);
}
}
public String Codifica(){
int I=0;
char c;
int K=0;
String Temp="";
boolean trovato=false;
while(Msg.length()>I){
K=0;
while(K<Alpha.length && Msg.charAt(I)!=Alpha[K]){
K++;
}
if(K!=Alpha.length){
Codifica=Codifica+" "+Morse[K];
}
I++;
}
I=0;
while(Codifica.length()>I){
c=Codifica.charAt(I);
int a=0;
double k;
trovato=false;
while(trovato==false){
k=Math.random()*10;
a=(int)k;
if(a<Punt.length)trovato=true;
}
if(c=='.')Temp=Temp+Punt[a];
while(trovato==false){
k=Math.random()*10;
a=(int)k;
if(a<Lin.length)trovato=true;
}
if(c=='-')Temp=Temp+Lin[a];
if(c==' ')Temp=Temp+Spaz[0];
I++;
}
Codifica=Temp;
return Codifica;
}
}



