java.lang.String을 byte []로 변환 할 수없는 이유를 알지 못합니다.Java 컴파일러는 byte []가 문자열이라고 생각합니다.
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으로
그래서 나는 왜 잘못했는지 이해하지 못합니다.
는 Btw는 : 나는 간단한 XOR EN/드 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());
}
}
왜 '문자열'을'byte [] '에 저장하려고합니까? 'decrypt' 반환 유형을 확인하십시오 ... – Li357
방금 잊어 버렸습니다. 제 컴파일러는 그다지 좋지 않아서 논쟁을 선택했습니다. 그래서 저는 당황한 사람들을 보았습니다. – fejfo
'String'은 (논리적으로)'byte []'가 아니므로'char []'과 비슷합니다. 챠와 바이트는 같은 것이 아닙니다. –