2011-04-20 38 views
3

它已經兩個星期了,我們仍然在跑腿。無法尋求大密碼流

的情況下,

我們設法使用受此啓發本地Web服務器流式傳輸加密的視頻。 Link

問題是在尋找時(視頻的進度條掛起,正常文件的作用相同)。 CipherInputStream.Seek(pos)不尋求超出緩衝區。

CipherInputStream cis = null; 
... 
long skipped = cis.skip(cbSkip); 

長跳躍總是跳過零。 Link

所以我們訴諸BlockSize 1(弱加密) ,這樣尋求將變得隱含。

我相信ARC4不再包含在android Ref Link中。 (請告訴我,我錯了), 或有任何其他加密(由Android支持)哪些將有塊大小1

爲CipherInputStream的構造函數,

if (!(isStream = cipher.getBlockSize() == 1)) 

這將不會覆蓋超類的行爲。

所以只剩下幾個選項,包括ARC4(或其他一些自定義字節在字節輸出加密)尋求。

有沒有可能讓我們的生活變得簡單。 我們只需要對緩解臨時用戶的媒體進行某種加密。 (速斷路器)

任何一個答案將解決這個問題:

  • 是否有具有塊大小爲1
  • 或者你有聯繫的所有Android支持的算法,它指向類似的地方解密流媒體解決方案這是可以追求的。
  • 或者我們是否只有DIY選項。
+0

ARC4無法正常工作。不能直接跳轉到一個字節,因爲解密必須保持狀態。我們的要求是關閉一個臨時用戶,所以現在找一個定製的解決方案。 – Samuel 2011-04-22 09:40:24

+0

你能否爲此添加答案? – 2017-02-05 18:09:14

回答

2

嘗試計數器模式加密(CTR)。計數器模式加密還用於例如磁盤加密:它不依賴於像CBC那樣的任何先前的塊。您可能不得不跳轉到特定的塊,然後跳轉到塊中的特定字節。如果這是你所追求的,你應該使用GCM進行「完整性控制」。看看這些算法在充氣城堡中有什麼可用(有點警告:你可能會因爲安卓系統使用AES密鑰而陷入困境,因爲該庫已經(嚴重地)集成在Android系統中。

+0

遲到的答案,儘管我結束了做類似這樣的事情,所以我把這個給你。 – Samuel 2011-05-02 01:49:22