java.lang.Stringをbyte []で変換できない理由を理解できません。行でJavaコンパイラはbyte []がStringであると考えます
:
byte[] decData = io.decrypt(fileData, new Random(fileData.length));
私のコンパイラは言った:java.lang.Stringでは、バイト[]
に変換することはできませんが、私はこのようなFILEDATAを初期化:
byte[] fileData = new byte[fIn.available()];
そして、 io.decryptは次のように定義されます。
public static String decrypt(byte[] data, Random key) {
byte[] byteKey = new byte[data.length];
key.nextBytes(byteKey);
return decrypt(data, byteKey);
}
ランダムがjava.util.Randomの場合
なぜ私が間違っていたのか分かりません。ところで
:私は
シンプルなXORエン/デcrypterを作成しようとしていると、これは完全なコードです:
Boolean decrypt = praseBoolean(Greenfoot.ask("decrypt? (y/n)"));
//Random rand = new Random();
if(!decrypt) {
File folder = new File("decrypted");
File[] toEncrypt = folder.listFiles();
//Long[] keys =
for(File file: toEncrypt) {
FileInputStream fIn = new FileInputStream(file);
byte[] fileData = new byte[fIn.available()];
fIn.read(fileData);
byte[] encData = io.encrypt(fileData, new Random(fileData.length));
io.saveEncryptedFile(encData, "encrypted/"+file.getName());
}
}
if(decrypt) {
File folder = new File("encrypted");
File[] toEncrypt = folder.listFiles();
//Long[] keys =
for(File file: toEncrypt) {
FileInputStream fIn = new FileInputStream(file);
byte[] fileData = new byte[fIn.available()];
fIn.read(fileData);
byte[] decData = io.decrypt(fileData, new Random(fileData.length));
io.saveEncryptedFile(encData, "decrypted/"+file.getName());
}
}
なぜ 'String'を' byte [] 'に格納しようとしていますか?あなたの 'decrypt'戻り値の型を確認してください... – Li357
私はそれについて忘れてしまった。私のコンパイラはそれほど良いものではなく、議論を選んだので、困惑した人たちを見ました。 – fejfo
'String'は(論理的に)' byte [] 'ではないことに注意してください。これは' char [] 'のようなものです。チャーとバイトは同じものではありません。 –