標籤:問題 roi 補全 bsp 處理 加密解密 sdn targe article
現在公司做金融項目,需要考慮安全加密方面的問題。感謝大牛同事(馮哥) ,給我很大的協助。
考慮到安全最佳化,我們把秘鑰、加密步驟放到native中。考慮用到的技術:(1 )jni,(2 )OpenSSL加密庫。
android使用C++代碼做加密操作:與之前的JNI開發不同的是, 自studio2.2起,增加了CMack外部構建工具,我們寫C++代碼也有自動補全提示了。在建立工程時增加了選項【】Include C++ Support,勾選上它,自動建立NDK工程。
建立工程前需要配置好NDK需要的工具,還有環境沒配好可能導致C++代碼不提示
這裡參考自:http://blog.csdn.net/cuiyufeng2/article/details/64125594
我建立的NDK工程如下:
與我們平時的java工程不同的地方:
.externalNativeBuild檔案夾(自動產生)、cpp檔案夾(存放C++代碼)、CMakeLists.txt檔案(CMake指令碼配置的檔案) 、app下的build.gradle(CMakeLists.txt檔案的路徑)。
這裡需要注意下,建立的C代碼.cpp檔案,都需要在CMakeLists.txt檔案中指明路徑,否則會報錯找不到。
引入OpenSSL加密庫,openssl封裝了大量的密碼編譯演算法,大大簡化了我們的加密操作。這裡就不多說了,下面我會放上自己的小demo。
這裡提一句:***** MD5加密是無法復原的,不要說錯了。
還有使用RSA加密時,不能同一種秘鑰加密解密。我們把公開金鑰放在用戶端,私密金鑰放在伺服器(為了安全,用戶端不能有私密金鑰)。
通常項目開發中,用戶端公開金鑰加密後的資料傳給伺服器,服務接到資料後拿私密金鑰解密;伺服器處理完的結果再用私密金鑰加密後傳給用戶端,用戶端接到服務給的資料後拿公開金鑰解密查看結果。
demo: https://github.com/HeavenDong/EncryptDemo
Android MD5加密、RSA加密