2011-09-02 49 views
1

編號:Android encryption/decryption issue (AES)的Android慢AES解密

我建立一個Android應用程序,它需要一個真正的大包(〜50MB的)的AES加密和Android的內置AES解密機制實施後(5分鐘左右就實在是太慢了)。

基於對SO上述職位,我嘗試使用NDK,並試圖下載本地庫(OpenSSL的)用於該應用程序。然而,openssl for android有非常多的文件,我不知道用哪個來創建.so文件。

我對使用Android應用NDK和本地代碼的相當缺乏經驗,會發現關於如何使用OpenSSL庫爲AES解密真正有用的任何建議/示例代碼。

由於提前, 納文

回答

1

嘗試SpongyCastle其重新包裝BouncyCastle的這不會與一個與Android發佈了衝突。 Android系統上的系統是舊的(如果你甚至有一個包含它的Android版本)。

這應該是你所需要的。

+0

不是BouncyCastle Android的提供商嗎? –

+0

在大多數發行版上都可以。但最後我檢查了它的一個非常舊的版本。搜索這個問題。並且由於Jre6中的Classloader問題,您無法用新的代碼替換bouncycastle,因此Android的重命名也是如此。 –

+0

嗨安德魯。剛剛看到你的回覆。謝謝。我會盡力實施並回復你。 –

0

我面臨着同樣的問題,因爲納文。

我有關於海綿城堡有些疑惑。如我錯了請糾正我。 這篇文章我發現:http://www.coderanch.com/t/134504/Security/Bouncy-Castle-vs-Sun-JCE 似乎性能可能微不足道。雖然沒有具體提到spongycastle.bouncycastle,但我假設它是,因爲sun jce的加密庫使用了一個精簡版的充氣城堡。

+0

需要注意的事項。任何Android設備上都不存在Sun軟件。這是我正在做的一個大膽的陳述,希望有人能證明我錯了。 Google擁有自己的JVM和潛在的類庫。這些庫很可能來自我認爲Sun員工所從事的OpenJDK。但是,在下載Oracle JDK時,請勿將在Android上運行的代碼與在Windows計算機上運行的代碼混淆。 –

+0

謝謝安德魯。我已經研究了很長一段時間,沒有任何關於如何在Android設備中解密大文件的有用文章。 – Jianhong