私は基本的にjavaでファイルを解読したいと思います。単純にファイルを1行ずつ読み込み、charの値を "char + = key"に変更します。ここでkeyは整数です。 問題は、2より大きいか等しいキーを使用すると、それ以上動作しないということです。Javaの非常に基本的なファイルの暗号化
public void encryptData(int key) {
System.out.println("Encrypt");
try {
BufferedReader br = new BufferedReader(new FileReader("encrypted.data"));
BufferedWriter out = new BufferedWriter(new FileWriter("temp_encrypted.data"));
String str;
while ((str = br.readLine()) != null) {
char[] str_array = str.toCharArray();
// Encrypt one line
for (int i = 0; i < str.length(); i++) {
str_array[i] += key;
}
// Put the line in temp file
str = String.valueOf(str_array);
out.write(str_array);
}
br.close();
out.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
復号化機能は同じであるが、入力/出力ファイルと交換し、代わりにキー値を加算することで、私はそれを引きます。
私はcharでcharをチェックしています。実際には、キー値> 1を使用するとヘッダーが乱れることがあります。それはcharの最大値を超えているのでしょうか?
上記の例のencrypted.dataファイルは、暗号化されていないデータを暗号化する生のテキストです。 – JasonM1
はい、このことを忘れました。これは、私が最初にencrypted.dataにデータを入力した後に、新しいファイルで暗号化し、新しいファイルを古いファイルに上書きするためです。これがtempと呼ばれる理由です。混乱させて申し訳ありません。 –