ようやくプラグインが完成し、別のプロジェクトに取り掛かりました。そのプロジェクトは、暗号化キーと文字列自体を指定して文字列を暗号化する単純なソフトウェアです。それで私はそれを書きました、そしてそれはうまくいっているようですが、それを解読する方法がわかりません。以前は暗号化されたアルファベットの配列を持っていましたが、暗号化関数でそれを使用せずに行う方法を見つけました。復号化でもそれを使用せずに行う方法があるはずです。
私の暗号化機能:
public static String e(String toEncrypt, int encKey) {
encKey %= ALPHABET.length;
toEncrypt = toEncrypt.toLowerCase();
char[] TEChar = toEncrypt.toCharArray();
for (int i = 0; i < toEncrypt.length(); i++) {
for (int j = 0; j < ALPHABET.length; j++) {
if (TEChar[i] == '`') {
TEChar[i] = '_';
}
else if (TEChar[i] == ALPHABET[j]) {
TEChar[i] = ALPHABET[(j + encKey) % ALPHABET.length];
break;
}
}
}
toEncrypt = String.valueOf(TEChar) + "`" + encKey;
return toEncrypt;
}
ALPHABET (配列、そして私はそれが単なるアルファベット以上のものを含んでいることを認識しています.):
char[] 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', ' ', '1',
'2', '3', '4', '5', '6', '7', '8', '9', '0', ',', '.', ';', ':', '[', ']', '{',
'}', '?'};
オフセット文字を入れるためだけに新しい配列を作成するのではなく、単純な加算と剰余演算子の使用でそれを行いました。減算と同じことを試してみましたが、26 にラップする必要があるためうまくいきませんでした。