性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

RSA算法的JNI封裝思路

                                                                      RSA算法的JNI封裝思路

JNI(Java Native Interface)是一組API和標(biāo)準(zhǔn),作用是實(shí)現(xiàn)Java和其他語(yǔ)言(主要是C/C++)的通信。出于運(yùn)算速度等方面的考慮,一些對(duì)運(yùn)算性能要求較高的算法往往是基于C/C++語(yǔ)言(與硬件關(guān)聯(lián)性更強(qiáng))實(shí)現(xiàn)的。如果應(yīng)用程序需要基于JAVA編程實(shí)現(xiàn)時(shí),這就會(huì)有一些矛盾。此時(shí),通過(guò)JNI技術(shù),Java開(kāi)發(fā)者可以在不了解算法內(nèi)容的情況下,方便快捷的使用C/C++加密算法的動(dòng)態(tài)庫(kù),實(shí)現(xiàn)跨語(yǔ)言調(diào)用。例如有如下的應(yīng)用場(chǎng)景:嵌入式終端要基于RSA非對(duì)稱(chēng)算法完成與服務(wù)器之間的身份認(rèn)證。終端通過(guò)加入加密芯片,可以快速安全實(shí)現(xiàn)基于RSA算法的簽名驗(yàn)簽工作,但是服務(wù)器端往往不會(huì)外加加密模塊,往往會(huì)基于Openssl等開(kāi)源庫(kù)來(lái)移植RSA算法,進(jìn)而實(shí)現(xiàn)高效運(yùn)算的目的。這些庫(kù)源碼大多基于C語(yǔ)言實(shí)現(xiàn),此時(shí)Java開(kāi)發(fā)者就可以借助JNI技術(shù)來(lái)封裝實(shí)現(xiàn)簽名等功能。

 

封裝步驟如下:

1. 使用java編譯器生成調(diào)用RSA加解密,簽名驗(yàn)簽的API頭文件。

2. 根據(jù)生成的頭文件和RSA的C源碼庫(kù)開(kāi)源庫(kù),生成一個(gè)供JNI接口調(diào)用的靜態(tài)庫(kù)

3. 在JAVA源碼中使用Native方法引入動(dòng)態(tài)庫(kù)的API,編譯java程序

最終生成的文件結(jié)構(gòu)如下圖:

A~OW9)J_A{4ND$WAHQ6QIKP

注意事項(xiàng):

1. Java數(shù)據(jù)類(lèi)型和本地?cái)?shù)據(jù)類(lèi)型需要做適當(dāng)?shù)霓D(zhuǎn)換,對(duì)應(yīng)關(guān)系如下表:

FK)IABPH68A_@B_LTELOX3L

2.若在windows下直接使用命令行的形式,注意JDK的版本,較新的版本已經(jīng)不支持javah命令,而是使用java -h代替了。

全部回復(fù)(0)
正序查看
倒序查看
現(xiàn)在還沒(méi)有回復(fù)呢,說(shuō)說(shuō)你的想法
發(fā)