мой подход шифрует mp3-файлы, которые даже после шифрования зашифрованный файл может быть воспроизведен с любым mp3-плеером (его нормально, если то, что вы слышите, это мусор! Только играйте). поэтому я собираюсь разбить мои Mp3-файлы на байт-массивы, а затем изменить кадры (в соответствии с файловой структурой Mp3) с помощью моего метода шифрования, который я использую.Изменение Mp3-файлов Bytes
здесь код я использую для получения байт:
public class Audio {
public static void main(String[] args) throws FileNotFoundException, IOException {
File file = new File("test.wmv");
FileInputStream fis = new FileInputStream(file);
//System.out.println(file.exists() + "!!");
//InputStream in = resource.openStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum); //no doubt here is 0
//Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
System.out.println("read " + readNum + " bytes,");
}
} catch (IOException ex) {
// Logger.getLogger(genJpeg.class.getName()).log(Level.SEVERE, null, ex);
}
byte[] bytes = bos.toByteArray();
byte temp ;
for(int i = 0 ; i < bytes.length ; i++)
{
System.out.println(bytes[i]);
}
//below is the different part
File someFile = new File("test2.wmv");
FileOutputStream fos = new FileOutputStream(someFile);
fos.write(bytes);
fos.flush();
fos.close();
}
Вот вещь, мое шифрование и изменение байт должно быть в каркасных части правильно? насколько я читаю, мы не можем получить доступ к битам, а наименьшая часть файла, которую мы можем изменить, - это байты. так как я могу изменить кадры, которые определены битами?
Я сделал «google it»! и я очень смущен, Если кто-нибудь может показать мне, как я буду благодарен.
спасибо! поэтому в соответствии с: [link] (http://en.wikipedia.org/wiki/MP3) каждый заголовок представляет собой 32 бита, который составляет 4 байта. поэтому я должен оставить заголовок и изменить байты данных с тем, что вы сказали правильно? – Aerox
Да, не нужно усложнять чтение из заголовка. Не преждевременно оптимизируйте. Дополнительная подсказка: для шифрования битов используйте режим шифрования потока, такой как AES-CTR, вместо режима блочного шифрования. Последний шаг потокового шифрования - это просто XOR, который идеально подходит для шифрования битов. Он также не требует каких-либо дополнений, хотя для этого требуется уникальный IV (для каждого ключа шифрования данных). –
спасибо, что вам помогли! – Aerox