ユーザーが入力した単語を暗号化する暗号化プログラムを作成していますが、入力された暗号化された単語を出力する以外はすべて動作します。ここに私のコードは、今のようになります。ユーザー入力を暗号化する
クラス1
public class Encryption {
String encrypt = "test";
String key;
String message;
String alpha;
Encryption(){
encrypt = Encrypt();
}
private String Encrypt(){
String[] alphabet = {
"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"
};
StringBuilder sbAlphabet = new StringBuilder();
for (int i = 0; i <= 25; i++) {
sbAlphabet.append(alphabet[i]);
}
alpha = sbAlphabet.toString();
return encrypt;
}
}
クラス2
package encryption;
import java.util.Random;
public class Key {
String key;
Key() {
key = genKey();
}
private String genKey() {
String[] scrambled = {
"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"
};
int r;
String temp;
String key;
StringBuilder sbScrambled = new StringBuilder();
for (int i = 0; i <= 25; i++) {
r = (int)(25*Math.random() + 1);
temp = scrambled[i];
scrambled[i] = scrambled[r];
scrambled[r] = temp;
}
for (int i = 0; i <= 25; i++) {
sbScrambled.append(scrambled[i]);
}
key = sbScrambled.toString();
return key;
}
}
クラス3
package encryption;
import java.util.Scanner;
public class Message {
Key key = new Key();
Encryption encrypt;
String message;
Message() {
System.out.println("Please enter an input:");
Scanner user_input = new Scanner(System.in);
message = user_input.next();
encrypt = new Encryption();
}
public static void main(String[] args) {
Message message = new Message();
System.out.println(message.key.key);
System.out.println(message.encrypt.alpha);
}
}
暗号化クラスは、Keyクラスの暗号化をアルファベットを返します。アルファベットをランダムに表示してから表示し、Messageクラスは暗号化されたキーとアルファベットをユーザー。相続人は、あなたがそれを実行したときに、それがどのように見えるかの例:
:私は、コードを作成しようとしている何Please enter an input:
wew lad
mbptwuklhanjrsedzqfcyvxogi
abcdefghijklmnopqrstuvwxyz
が行うが、それは次のようになりますので、暗号化されたアルファベットで、ユーザー入力を表示していますあなたは、暗号化クラスに、そこからあなたmessage
Message()
の内側を通過した文字のすべてをループし、sの中でそれに相当するとmessage
文字を交換する必要が
:あなたの質問に答えるために
Please enter an input:
wew lad
xwx jmt
mbptwuklhanjrsedzqfcyvxogi
abcdefghijklmnopqrstuvwxyz
私はこの方法はあまり安全ではないと思いますが、私は初心者のJavaコースを取っています。私はこの方法でプロジェクトをやろうとしています。 –
私は自分の投稿を編集して、あなたが望むものを達成する方法とそれがなぜ貧弱な暗号化方法であるのかを説明しました。私はこれが宿題/個人プロジェクトのいずれかであると仮定しました。 – user123