2012-02-10 50 views
3

那麼,我該怎麼做呢?找不到任何成功使用RC4的示例。 另外,做cipher = Cipher.getInstance(「RC4」);返回NoSuchAlgorithm例外Android - 使用帶密碼的RC4

+0

你爲什麼要使用RC4?這很容易誤用 – CodesInChaos 2012-02-10 09:52:33

+0

我想加密/解密視頻文件,而AES不會因爲它太慢而削減它。不要擔心我誤用了RC4,在我弄清楚如何使用它之後可以照顧到。 :) – josephus 2012-02-10 10:05:31

+2

AES應該能夠解密遠遠超出實時的視頻文件。您可能需要隨機訪問,所以我建議在CTR模式下使用AES。 – CodesInChaos 2012-02-10 10:40:08

回答

3

如果您列出了可用的密碼:

Provider[] providers = Security.getProviders(); 
    for (Provider provider : providers) { 
     for (Object entry : provider.keySet()) { 
      String name = String.valueOf(entry); 
      if (name.startsWith("Cipher")) { 
       Log.d("Cipher", "Supports: " + name.substring(7)); 
      } 
     } 
    } 

有幾個變種RC4 - 如PBEWITHSHAAND128BITRC4(PKCS#5)。你需要哪一個?

+0

這個列表對於每種類型的設備(或者至少是Android版本)都是不同的。我使用2.2,並通過我的列表grep不給rc4變種。從哪個設備列表中刪除? – josephus 2012-02-10 10:02:17

+0

這是來自ICS。如果我將設備刷回到2.3.4,您仍然會發現PBEWITHSHAAND128BITRC4。 – Jens 2012-02-10 10:05:48

+0

如上所述,我的是2.2。此外,另一個目標是允許應用程序運行在2.2以下的低端手機上。 – josephus 2012-02-10 10:08:01