2012-05-03 145 views
0

我需要在C語言(ndk)中使用AES加密或解密字符串,我看到很多關於如何爲android編譯openssl的問題,我需要知道何時openssl已經可用我們不能在C中使用相同的加密嗎?如果沒有,我需要編譯整個openssl庫,有沒有其他的輕量級庫,我可以使用ndk在android的標準加密?基於openssl的AES加密在android

回答

2

Android的Openssl不是NDK的一部分,所以你不能立即使用它。但是,Google爲其提供了NDK可編譯的代碼庫作爲外部庫(請參閱https://github.com/android/platform_external_openssl)。你需要編譯它然後使用它。如果你這樣做,看看Building Android openssl using NDK doesn't make arm4 assembly files properly

至於輕量級庫,可以在頁面http://en.wikipedia.org/wiki/AES_implementations#C.2FASM_library的C頁找到一個AES實現列表。但是,大多數圖書館功能豐富,因此您將擁有大量不會使用的代碼。相反,您可以直接在您的代碼中嵌入參考AES實現,然後使用它。一個這樣的實現可以在http://embeddedsw.net/Cipher_Reference_Home.html找到。

+0

但openssl在android操作系統中可用,我們不能使用它? –

+0

NDK不包含openssl的頭文件或庫文件。 Google只提供NDK可編譯的源代碼。所以如果你使用NDK來構建你的程序,你必須自己構建openssl庫。嘗試「找到$ NDK_ROOT | grep -i ssl」 – Samveen

+0

Sandeep對此有任何幫助嗎?請通過回答這個問題來分享。我面臨同樣的問題。非常感謝 – png