使用Java的InputStream我有一個使用C庫來解析出某種類型文件的Android項目。我正在使用AES和CipherInputStreams和CipherOutputStreams爲項目添加加密。問題是Java代碼將文件名和描述符傳遞給C庫,然後C庫執行文件讀取。現在,如果文件被加密存儲,C庫會將該文件讀取爲垃圾。有沒有辦法將CipherInputStream傳遞給C代碼,以便解密被處理?或者我應該只用Java解密文件並將其作爲明文存儲在私有存儲中,然後將文件描述符發送給C代碼?這似乎相對低效。在C JNI庫
Q
在C JNI庫
0
A
回答
1
既然你可以修改C代碼,我建議你直接在那裏建立加密層。這樣你的Java代碼就不會在乎它是否在加密文件之上。
如果你想有一個加密邏輯在Java代碼中,那麼我認爲你需要做的在Java中讀取字節[]和InputStream.read的每個結果傳遞給你的C代碼。您可能需要爲此更改您的API,並且需要一種方式在完成時告訴C代碼。
+0
謝謝你的幫助!我會嘗試這些選項。我只是在想要做什麼概念化方面遇到一些麻煩。 – Dan
相關問題
- 1. 如何調試JNI/C庫?
- 2. 使用Jni包裝C++庫
- 3. JNI,C++及其標準庫
- 4. JNI加載庫
- 5. 靜態庫和JNI
- 6. Jni和共享庫
- 7. JNI UnsatisfiedLinkError依賴庫
- 8. JNI依賴庫
- 9. 使用jni包裝一個C++庫
- 10. JNI/C庫:傳遞字節ptr
- 11. 在另一個JNI庫中加載JNI庫崩潰
- 12. JNI庫分析
- 13. 打包JNI庫
- 14. 如何找到在Ubuntu JDK目錄JNI C/C++庫
- 15. 在ubuntu中使用JNI庫
- 16. JNI,C++問題
- 17. JNI C++回調
- 18. JNI和C++ - UnsatisfiedLinkError
- 19. JNI with Builder C++
- 20. 使用JNI加載另一個JNI庫?
- 21. JNI的Java在C++中
- 22. 從其他jni庫調用jni方法
- 23. JNI教程,cant'load庫
- 24. 在Ubuntu下使用JNI在IntelliJ中包含native C++ .so庫
- 25. Scala SBT和JNI庫
- 26. Java的JNI:由C
- 27. java.lang.UnsatisfiedLinkError with JNI and c
- 28. JNI的Java和C++
- 29. JNI在JDK使用jawt JNI庫Xlib的窗口句柄
- 30. 我可以在Android的JNI庫中使用C++異常嗎?
你是否控制了C代碼?您可能需要修改API以實現您想要完成的任務 –
是的,我可以控制C代碼。 – Dan