0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RSA算法的JNI封裝步驟

電子工程師 ? 2020-06-04 17:45 ? 次閱讀

RSA算法的JNI封裝思路

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

封裝步驟如下:

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

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

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

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

SC7A{~%%4{J]%(30C9R2SL4.png

注意事項:

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

O1BDS0ZG7ER{I80@@N3JN_3.png

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 封裝
    +關(guān)注

    關(guān)注

    128

    文章

    8529

    瀏覽量

    144831
  • RSA算法
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7937
  • JNI
    JNI
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    7999
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    江蘇潤石推出RSA4081系列高壓集成電流檢測芯片

    RSA4081系列是一款支持高工作電壓、寬共模輸入電壓范圍的集成電流檢測芯片,工作電壓支持5.0V至100V,共模輸入電壓范圍亦支持5.0V至100V;可以很好應(yīng)對24V、48V母線電壓系統(tǒng)的電流采集應(yīng)用。
    的頭像 發(fā)表于 06-09 14:04 ?82次閱讀
    江蘇潤石推出<b class='flag-5'>RSA</b>4081系列高壓集成電流檢測芯片

    提升泰克RSA306B頻譜分析儀頻率測量精度的方法

    泰克RSA306B頻譜分析儀憑借其寬頻帶、高動態(tài)范圍和實時頻譜分析能力,廣泛應(yīng)用于通信、射頻測試和電磁兼容性(EMC)等領(lǐng)域。然而,在實際使用中,頻率測量精度可能受多種因素影響,導(dǎo)致測量結(jié)果存在偏差
    的頭像 發(fā)表于 04-03 18:03 ?290次閱讀
    提升泰克<b class='flag-5'>RSA</b>306B頻譜分析儀頻率測量精度的方法

    部署WoSign SSL國密RSA雙證書,實現(xiàn)國密HTTPS加密

    “網(wǎng)絡(luò)與通信安全”合規(guī)需求。通過部署WoSign SSL國密RSA雙證書方案,實現(xiàn)國際和國密算法自適應(yīng)兼容,確保信息系統(tǒng)全球通用性與安全性。
    的頭像 發(fā)表于 03-26 10:58 ?285次閱讀
    部署WoSign SSL國密<b class='flag-5'>RSA</b>雙證書,實現(xiàn)國密HTTPS加密

    云平臺如何部署WoSign SSL“國密RSA雙證書”

    阿里云WoSign品牌SSL證書是阿里云平臺熱銷的國產(chǎn)品牌證書之一,支持簽發(fā)國密合規(guī)的SM2算法SSL證書以及全球信任的RSA算法SSL證書,能夠滿足平臺用戶不同的SSL證書應(yīng)用需求,同時為用戶提供國密模塊支持,實現(xiàn)“國密/
    的頭像 發(fā)表于 03-18 17:03 ?276次閱讀
    云平臺如何部署WoSign SSL“國密<b class='flag-5'>RSA</b>雙證書”

    封裝基板設(shè)計的詳細步驟

    封裝基板設(shè)計是集成電路封裝工程中的核心步驟之一,涉及將芯片與外部電路連接的基板(substrate)設(shè)計工作?;逶O(shè)計不僅決定了芯片與外部電路之間的電氣連接,還影響著封裝的可靠性、性能
    的頭像 發(fā)表于 03-12 17:30 ?700次閱讀

    FOC 算法實現(xiàn)永磁同步電機調(diào)整指南

    本文檔介紹了使用 FOC 算法實現(xiàn)永磁同步電機 (Permanent Magnet SynchronousMotor,PMSM)調(diào)整所需的步驟和設(shè)置,該算法如 AN1078《PMSM 電機的無傳感器
    發(fā)表于 03-03 01:53

    設(shè)計SO-8封裝的詳細步驟和注意事項

    設(shè)計 SO-8(Small Outline-8)芯片的 PCB 封裝需要遵循一定的規(guī)范和步驟。SO-8 是一種常見的表面貼裝封裝,具有 8 個引腳,引腳間距通常為 1.27mm(50 mil)。以下是設(shè)計 SO-8
    的頭像 發(fā)表于 02-06 15:24 ?2651次閱讀
    設(shè)計SO-8<b class='flag-5'>封裝</b>的詳細<b class='flag-5'>步驟</b>和注意事項

    【迅為RK3568開發(fā)板】嵌入式學(xué)習(xí)之安卓JNI開發(fā)

    P1 jni教程(一) 28:40 P2 jni教程(二) 34:47 P3 jni教程(三) 17:40 https://www.bilibili.com/video/BV18v411i7Dx
    發(fā)表于 08-23 09:49

    15W電源方案CR6212SJ+CR40V15RSA-原理圖

    該電源方案是基于能夠適用于寬輸入電壓范圍,輸出功率15W,恒壓恒流輸出的電源樣機,控制IC采用了本公司的CR6212SJ和CR40V15RSA。CR6212BSJ芯片特性:●CR6212BSJ內(nèi)置
    發(fā)表于 08-05 18:18 ?3次下載

    鴻蒙開發(fā):Universal Keystore Kit密鑰管理服務(wù) 明文導(dǎo)入密鑰 ArkTS

    分別以導(dǎo)入AES256與RSA2048密鑰為例,具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-08 10:22 ?622次閱讀
    鴻蒙開發(fā):Universal Keystore Kit密鑰管理服務(wù) 明文導(dǎo)入密鑰 ArkTS

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的原理、數(shù)學(xué)推導(dǎo)及實現(xiàn)步驟

    傳播算法的原理、數(shù)學(xué)推導(dǎo)、實現(xiàn)步驟以及在深度學(xué)習(xí)中的應(yīng)用。 神經(jīng)網(wǎng)絡(luò)概述 神經(jīng)網(wǎng)絡(luò)是一種受人腦啟發(fā)的計算模型,由大量的神經(jīng)元(或稱為節(jié)點)組成,每個神經(jīng)元與其他神經(jīng)元通過權(quán)重連接。神經(jīng)網(wǎng)絡(luò)可以分為輸入層、隱藏層和輸出層。輸入層接收外部輸入數(shù)據(jù)
    的頭像 發(fā)表于 07-03 11:16 ?1654次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-scp出現(xiàn)報錯no matching host key type found. Their offer: ssh-rsa

    定支持的密鑰類型。 第一種修改方法:在每次執(zhí)行scp命令時加上-o HostKeyAlgorithms=+ssh-dsa,例如:scp -o HostKeyAlgorithms=+ssh-rsa
    發(fā)表于 06-29 09:33

    飛凌嵌入式ElfBoard ELF 1板卡-scp出現(xiàn)報錯no matching host key type found. Their offer: ssh-rsa

    =+ssh-rsa led root@192.168.0.232:/home/root 第二種修改方法(推薦): 在客戶端~/.ssh目錄下修改config文件,如果沒有config文件就手動創(chuàng)建一個,添加以下內(nèi)容: Host 服務(wù)器IP HostkeyAlgorithms +ssh-
    發(fā)表于 06-29 09:30

    怎么用espsecure.py生成RSA秘鑰?

    請問,怎么用 espsecure.py 生成RSA秘鑰 用命令: espsecure.py generate_signing_key secure_boot_signing_key.pem生成的是ECDSA秘鑰 那么二代的RSA用什么命令? 謝謝!
    發(fā)表于 06-21 07:30

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品