Vigenere Algoritması (Java)

fatihozel

New member
Canım sıkılıyordu, dedim ki şu vigenere algoritmasını java'da yazayım. Hazır java'yı da yeni öğrenmişken

Neyse Kodlar aşağıda. Çalıştıran olursa yorumunu eklesin.

------Vigenere.java------
public class Vigenere {

public static int[] str2IntArr(String s){
int[] res=new int[s.length()];
for(int i=0;i<res.length;i++)
res=(int)s.charAt(i);
return res;
}

public static int[] encrypt(int[] arr, int[] key){

int[] res=new int[arr.length];

for(int i=0;i<res.length;i++){
res=(arr+key[i%key.length])%256;
//System.out.println(arr);
}

return res;

}

public static int[] decrypt(int[] arr, int[] key){

int[] res=new int[arr.length];

for(int i=0;i<arr.length;i++){
res=(arr-key[i%key.length]+256)%256;
}
return res;
}

public static char[] int2CharArr(int[] arr){
char[] res=new char[arr.length];
for(int i=0;i<res.length;i++)
res=(char)arr;
return res;
}

public static void main(String[] args){

String task="";
char tasknum=' ';
try{
task=Tools.getInputFromUser("Encrypt or Decrypt? e/d: ");
tasknum=task.charAt(0);
if(!(tasknum=='e' || tasknum=='d')){
System.out.println("e/d? enter one");
main(args);
}
}
catch(Exception e){
System.out.println("An Error Occured Please Try Again!");
main(args);
}

if(tasknum=='e'){
int[] toEncode=Tools.getFileInIntArray(Tools.getInputFro mUser("Enter The Filename To Be Encrypted: "));
int[] key=str2IntArr(Tools.getInputFromUser("Enter the key: "));

Tools.writeArrayToFile(Tools.getInputFromUser("Ent er The Filename To Store The Cipher: "),int2CharArr(encrypt(toEncode,key)));

System.exit(0);
}
else{
int[] toDecode=Tools.getFileInIntArray(Tools.getInputFro mUser("Enter The Filename To Be Decrypted: "));
int[] key=str2IntArr(Tools.getInputFromUser("Enter the key: "));

Tools.writeArrayToFile(Tools.getInputFromUser("Ent er The Filename To Store The Deciphered File: "),int2CharArr(decrypt(toDecode,key)));
System.exit(0);
}


}

}
--------------------------------------------------------------------------------------------------------

---------Tools.java-------------
import java.io.*;
public class Tools {

public static String getInputFromUser(String message){

try{

BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
System.out.print(message);
String res=console.readLine();
return res;


}
catch(Exception e){

System.out.print(e);
System.out.println(":<There Happened An Error>:\n");
return null;
}

}
public static String getInputFromUser(){
return getInputFromUser("Enter: ");
}
public static String getInputFromFile(String fileName){

try{

BufferedReader inputFile=new BufferedReader(new FileReader(fileName));

String res="";
String line;

while((line=inputFile.readLine())!=null){
res+=line+"\n";
}

inputFile.close();
return res;
}
catch(Exception e){
System.out.print(e);
System.out.println(":<There Happened An Error>:");
return null;
}
}
public static void writeOutputToFile(String fileName, String data){

writeOutputToFile(fileName,data,false);
}
public static void writeOutputToFile(String fileName, String data, boolean append){

try{

File outFile=new File(fileName);
PrintWriter output=new PrintWriter(new FileWriter(outFile,append));
output.print(data);
output.close();

}
catch(Exception e){
System.out.print(e);
System.out.println(":<There Happened An Error>:");
}
}
public static void writeArrayToFile(String fileName, char[] data, boolean append){

try{

File outFile=new File(fileName);
PrintWriter output=new PrintWriter(new FileWriter(outFile,append));
for(int i=0;i<data.length;i++){
output.print(data);
}
output.close();

}
catch(Exception e){
System.out.print(e);
System.out.println(":<There Happened An Error>:");
}
}
public static void writeArrayToFile(String fileName,char[] data){
writeArrayToFile(fileName,data,false);
}
public static char[] getFileInArray(String fileName){

try{
File file1=new File(fileName);
BufferedReader readfile1=new BufferedReader(new FileReader(file1));

char[] res = new char[(int)file1.length()];

for(int i=0;i<res.length;i++){
res=(char)readfile1.read();
}
readfile1.close();
return res;
}
catch(Exception e){
System.out.print(e);
System.out.println(":<There Happened An Error>:");
return null;
}


}
public static int[] getFileInIntArray(String fileName){
char[] preres=getFileInArray(fileName);
int[] res=new int[preres.length];
for(int i=0;i<preres.length;i++){
res=(int)preres;
//System.out.println(res+"----"+preres);
}
return res;
}
}
---------------------------------------------------------------------------------------

Kullanımı:

javac Vigenere.java
java Vigenere
 

HTML

Üst