1
我用java編寫了一個凱撒密碼的程序,程序將文本文件作爲輸入存儲在我的計算機中,並根據用戶提供的鍵值對其進行加密。然後這個加密文件必須以文本文件格式保存在計算機上。我一直在試圖找出我出錯的地方,但我想我需要一些來自java中更有經驗的人的幫助。因此,繼承人我的代碼:有缺陷的密碼凱撒java程序
import java.util.Scanner;
import java.io.*;
import java.lang.*;
public class trial
{
public static void main(String arg[])
{
String textFile="plaintext.txt";
String cipheredFile=" ciphertext.txt";
String line= null;
FileReader fileReader=new FileReader(textFile);
BufferedReader bufferedReader=new BufferedReader(fileReader);
FileWriter fileWriter= new FileWriter(cipheredFile,true);
BufferedWriter bufferedWriter= new BufferedWriter(fileWriter);
int swvalue;
Scanner input= new Scanner(System.in);
System.out.println("Select 1: Encrypt, 2: Decrypt, 3: Get Frequency");
int msg= input.nextInt();
swvalue= Integer.valueOf(msg);
switch(swvalue)
{
case 1:
System.out.println("Encrypting the file");
System.out.println(" Please enter a value for key");
int keyvalue= input.nextInt();
String[] filearray=null;
while((line=bufferedReader.readLine())!=null)
{
char[] toEncrypt=line.toCharArray();
for(int i=0;i<toEncrypt.length;i++)
{
int charPosition= indexOf(line.charAt(i));
int finalValue=(keyValue+charPosition)%26;
char replaceValue=line.charAt(finalValue);
line+=replaceValue;
}
bufferedWriter.write(line);
bufferedWriter.newLine();
}
bufferedReader.close();
bufferedWriter.close();
break;
case 2:
System.out.println("Decrypt the file");
break;
case 3:
System.out.println(" Get frequency");
break;
}
}
}
是什麼讓你覺得它不工作? –
我會開始整理代碼。刪除不必要的行,未使用或重複的變量等。這應該澄清很多。這個實現不是凱撒密碼,而是僞隨機地交換周圍的角色 – Paul