0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(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和標準,作用是實現(xiàn)Java和其他語言(主要是C/C++)的通信。出于運算速度等方面的考慮,一些對運算性能要求較高的算法往往是基于C/C++語言(與硬件關(guān)聯(lián)性更強)實現(xiàn)的。如果應用程序需要基于JAVA編程實現(xiàn)時,這就會有一些矛盾。此時,通過JNI技術(shù),Java開發(fā)者可以在不了解算法內(nèi)容的情況下,方便快捷的使用C/C++加密算法的動態(tài)庫,實現(xiàn)跨語言調(diào)用。例如有如下的應用場景:嵌入式終端要基于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ù)類型需要做適當?shù)霓D(zhuǎn)換,對應關(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)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 封裝
    +關(guān)注

    關(guān)注

    126

    文章

    7901

    瀏覽量

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

    關(guān)注

    0

    文章

    14

    瀏覽量

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

    關(guān)注

    0

    文章

    8

    瀏覽量

    7862
收藏 人收藏

    評論

    相關(guān)推薦

    江蘇潤石RSA4080系列高壓集成電流檢測芯片介紹

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

    【迅為RK3568開發(fā)板】嵌入式學習之安卓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-PCB圖

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

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

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

    15.5W電源方案CR6267SK+CR40V8RSA-PCB圖

    該電源方案是基于能夠適用于寬輸入電壓范圍,輸出功率15.5W,恒壓恒流輸出的電源樣機,控制IC采用了本公司的CR6267SK和CR40V8RSA。CR6267SK芯片特點●CR6267SK
    發(fā)表于 08-05 18:15 ?0次下載

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

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

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

    傳播算法的原理、數(shù)學推導、實現(xiàn)步驟以及在深度學習中的應用。 神經(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 ?792次閱讀

    嵌入式學習-飛凌嵌入式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

    mos封裝工藝是什么,MOS管封裝類型

    MOS封裝工藝是指將制造好的MOS管芯片通過一系列步驟封裝到外殼中的過程。以下是MOS封裝工藝的詳細步驟和相關(guān)信息:
    的頭像 發(fā)表于 06-09 17:07 ?1585次閱讀

    泰克頻譜分析儀RSA5126B_26.5G儀器無法開機案例

    有收到北京某高校送來的一臺泰克頻譜分析儀RSA5126B_26.5G維修儀器,當我們打開包裝后泰克頻譜分析儀RSA5126B_26.5G的外觀成色相當不錯,經(jīng)過安泰儀器租賃/維修中心的工程師的仔細排查,下面給大家具體介紹一下泰克頻譜分析儀維修情況及使用方法和操作
    的頭像 發(fā)表于 04-07 11:26 ?987次閱讀
    泰克頻譜分析儀<b class='flag-5'>RSA</b>5126B_26.5G儀器無法開機案例

    鴻蒙OS開發(fā)問題:(ArkTS)【 RSA加解密,解決中文亂碼等現(xiàn)象】

    RSA加解密開始構(gòu)建工具類就是舉步維艱,官方文檔雖然很全,但是還是有很多小瑕疵,在自己經(jīng)過幾天的時間,徹底解決了中文亂碼的問題、分段加密的問題。
    的頭像 發(fā)表于 03-27 21:23 ?1765次閱讀
    鴻蒙OS開發(fā)問題:(ArkTS)【 <b class='flag-5'>RSA</b>加解密,解決中文亂碼等現(xiàn)象】

    全志R128 SDK HAL 模塊開發(fā)指南——Crypto Engine

    */ uint32_t dir; uint32_t padding_mode; /*hash算法的填充模式*/ } crypto_hash_req_ctx_t; RSA 算法運算接口 主要實現(xiàn)
    發(fā)表于 03-21 10:44

    TC233/TC234系列中的HSM硬件支持哪些加密算法

    HSM 中支持的算法:你能否具體說明 TC233/TC234 系列中的 HSM 硬件支持哪些加密算法? 特別是,我有興趣了解對 AES、CMAC、RSA、ECC 和 SHA 的支持。 2. 具有類似
    發(fā)表于 01-18 10:33