Ich verstehe nicht, warum java.lang.String nicht in Byte [] konvertiert werden kann.Java Compiler denkt Byte [] ist String
Auf der Linie:
byte[] decData = io.decrypt(fileData, new Random(fileData.length));
mein Compiler sagte: java.lang.String kann nicht []
in Byte umgewandelt werden, aber ich initialisieren filedata wie folgt aus:
byte[] fileData = new byte[fIn.available()];
Und io.decrypt wird wie folgt definiert:
public static String decrypt(byte[] data, Random key) {
byte[] byteKey = new byte[data.length];
key.nextBytes(byteKey);
return decrypt(data, byteKey);
}
Mit zufällig sein java.util.Random
So verstehe ich nicht, warum ich falsch gemacht habe.
Btw: Ich versuche
einen einfachen XOR-de/de-crypter zu machen, und dies ist der vollständige Code:
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());
}
}
Warum versuchen Sie eine 'String' in ein' byte [] 'zu speichern? Überprüfen Sie Ihre Entschlüsselungstyp ... – Li357
Ich habe gerade vergessen. Mein Compiler ist nicht so gut und wählte die Argumente, so dass ich diese verwirrt ansah. – fejfo
Beachten Sie, dass ein 'String' nicht (logisch) ein' byte [] 'ist: es ist mehr wie ein' char [] '. Zeichen und Bytes sind nicht dasselbe. –