2015-10-13 43 views
-2

我正在嘗試java中的此代碼,因爲android內部也使用java。 我的問題是關於如何破壞(加密)mp4視頻,以便即使某些正文複製了這些視頻,也不會播放。使用Java-通過將隨機字節寫入文件來加密SD卡視頻

我試圖通過添加「hi」來結束該文件的位置來破壞mp4視頻,以至於文件被破壞,vlc播放器無法播放該文件。我可以成功破壞視頻。 VLC不再能夠播放視頻。

解密時,我們正在從該文件中讀取除最後2個字符「hi」以外的內容,並將內容複製到另一個文件中,以檢查我是否可以正確解密。 但問題是解密視頻播放不正常.VLC不報告任何錯誤,但顯示綠色窗口代替視頻,聲音也不會來。 解密文件的大小是正確的,如預期。

我的疑問是,當我正在閱讀mp4文件的數據並複製到其他文件中時,有些mp4文件屬性缺失,這就是vlc可能無法按照它應該播放的方式播放的原因。如果是這樣的話,是否有任何方法手動將mp4屬性設置爲解密文件,以便vlc可以正確播放它?

我知道有很多密碼類可以做到這一點,但不幸的是,加密和解密大小爲50mb的視頻文件可能太慢了。我不想讓視頻用戶延遲超過5秒鐘。我已經嘗試過密碼,但速度很慢,有時會超過30秒,這可能會刺激付費購買視頻的真正視頻用戶。

我只是想要一個非常輕量級的安全模型,它可以在一定程度上保護我的視頻(正如你知道的鎖並不適用於盜賊)。

如果有人試過這樣一個簡單的算法,手動破壞mp4視頻並在播放前動態解密,請幫助我。除此之外,我們還隱藏文件,更改文件的擴展名,並將視頻分割成更小的文件,這些文件將在播放前通過我們的應用程序合併。

我試過的代碼,粘貼在這裏。

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.LinkOption; 
import java.nio.file.attribute.BasicFileAttributes; 
import java.nio.file.attribute.DosFileAttributes; 


public class Testing { 
    public static void main(String[] args) { 
     File file = new File("e:/ascii.mp4"); //original file path 
     File file2 = new File("e:/satish.mp4"); //encrypted file path 
     File file3 = new File("e:/satish2.mp4"); //decrypted file path 
     try { 

      String s = new String(Files.readAllBytes(file.toPath())); 
      s = s+"hi"; //appending hi to mp4 content 
      FileWriter fw = new FileWriter(file2); 
      fw.write(s); //writing mp4 content + hi to encrypted file 
      fw.close(); 

      String s2 = new String(Files.readAllBytes(file2.toPath())); 
      s2 = s2.substring(0, s2.length()-1-2); //reading content except last 2 characters. 

      FileWriter fw2 = new FileWriter(file3); //decrypted file 
      fw2.write(s2); //writing content to decrypted file. 
      fw2.close(); 

     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
    } 
} 
+0

數字版權管理系統旨在有效地完成這件事。嘗試查看Android上可用於MP4文件的DRM系統。 –

回答

0

最後,我能夠得到解決方案。 我用邏輯of this question.幾乎沒有修改,我在那裏指定鏈接本身。我可以在4秒內解密我的52MB視頻。