Verschlüsselung von video-Dateien?
Bin ich mit dieser Methode für die Verschlüsselung einer video-Datei:
public static void encryptToBinaryFile(String password, byte[] bytes, File file) throws EncrypterException {
try {
final byte[] rawKey = getRawKey(password.getBytes());
final FileOutputStream ostream = new FileOutputStream(file, false);
ostream.write(encrypt(rawKey, bytes));
ostream.flush();
ostream.close();
} catch (IOException e) {
throw new EncrypterException(e);
}
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws EncrypterException {
try {
final SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
final Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
return cipher.doFinal(clear);
} catch (Exception e) {
throw new EncrypterException(e);
}
}
Aber Es gibt ein Fehler wegen ungenügenden Speicherplatzes zu sagen Ablehnung der Zuweisung von 301023321 element.
1.Ist die Methode, die ich verwende richtige für so große Dateien?
2.Wenn ja, warum bin ich immer diese Fehlermeldung?Was ist die Lösung?
3.Wenn Nein, schlagen Sie bitte ein paar gute Methode?
statt dofinal, würde ich die Verwendung von update mit Stücken von meiner ersten byte[] (ein paar Kb jedes mal) und schreiben Sie diese in die Datei.
oder vielleicht mit den doFinal-Methode mit 2 ByteBuffers Elemente
Wie willst du entschlüsseln ? Sie erschwert es durch die Verschlüsselung der video-in Blöcken...
Ich bin neu in diesem können Sie mir helfen mit etwas code
oder vielleicht mit den doFinal-Methode mit 2 ByteBuffers Elemente
Wie willst du entschlüsseln ? Sie erschwert es durch die Verschlüsselung der video-in Blöcken...
Ich bin neu in diesem können Sie mir helfen mit etwas code
InformationsquelleAutor Navdroid | 2012-02-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
CipherInputStream
undCipherOutputStream
wird Ihnen helfen, das leicht tun. Ich schrieb ein Beispiel für ein Programm zum verschlüsseln und entschlüsseln der video-Datei. Ändern Sie es wie pro Ihre Wahl...Ich bin dem generieren eines neuen Schlüssels mithilfe
generateKey()
. Sie können verwenden ein byte-array zu generieren Ihren eigenen Schlüssel....Und wie wollen Sie spielen die verschlüsselten video wieder, ohne dass es in unverschlüsselter form?
natürlich, aber die wirklich interessante Frage ist, wie Sie planen, Sie zu entschlüsseln und Abspielen, ohne dass die entschlüsselte version zu kopieren.
Sie werden mithilfe von Zeichen-Stream beim Lesen und verschlüsseln und es ist sehr langsam, Sie können stattdessen verwenden Sie Puffer und liest Zeile für Zeile, um die Geschwindigkeit zu erhöhen, wie dieses byte[] buffer = new byte[1024]; while ((Anzahl = in.read(buffer)) >= 0) { out.write(buffer, 0, count); }
Es sieht aus wie der Standard Schlüssellänge beträgt 128 bits(16 bytes). Wenn Sie möchten, können Sie es ändern mit der
init
Methode derKeyGenerator
ZB:kgen.init(256);
InformationsquelleAutor Shashank Kadne
Verschlüsselung Großen Fehler
Tonyz Java AES Encryptor
Schnelle Verschlüsselung/Entschlüsselung mit
Random IV generation
mit JavaSecureRandom
Dank Naveem M kumar für die Anregung http://libeasy.alwaysdata.net/
AES/CBC/PKCS5Padding
Dosis bei mir nicht funktioniert, ändern Sie ihn aufAES
gearbeitet...Es ist manchmal besser, um zu zeigen, rechthaberisch-code, weil die meisten Leser nicht Recht. Der IV ist nicht geheim, so senden Sie es zusammen mit dem ciphertext. In der Regel ist es einfach vorangestellt, um den Chiffretext und geschnitten aus, bevor die Entschlüsselung.
Ich habe erklärt IV_Length in der Klasse variable, IV_LENGTH = 16. Ich hoffe, ich habe richtig verstehe Ihre Frage
Sorry, wenn ich unklar war. Es ist besser, entfernen Sie die
AlgorithmParameterSpec
(IV) argument von der Methode Unterschriftenencrypt
unddecrypt
und statt: inencrypt
erzeugen ein frisches IV, schreiben Sie es an die Ausgabe-stream und verwenden Sie es für die Verschlüsselung und indecrypt
Lesen Sie die IV aus dem Eingabe-stream und verwenden Sie es für die Entschlüsselung. So, zukünftige Leser würde nicht brauchen, um über die IV durch sich selbst und nicht bekommen es falsch und es ist leicht zu bekommen, falsch.Vielen Dank für die Kommentare zurück, jetzt bin ich mit dieser Bibliothek zu spielen entschlüsselte video libeasy.alwaysdata.net
InformationsquelleAutor AZ_