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和標準,作用是實現(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ù)類型需要做適當?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)注

    126

    文章

    7650

    瀏覽量

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

    關(guān)注

    0

    文章

    14

    瀏覽量

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

    關(guān)注

    0

    文章

    8

    瀏覽量

    7845
收藏 人收藏

    評論

    相關(guān)推薦

    【迅為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

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

    分別以導(dǎo)入AES256與RSA2048密鑰為例,具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-08 10:22 ?296次閱讀
    鴻蒙開發(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 ?544次閱讀

    飛凌嵌入式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 ?1274次閱讀

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

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

    芯片封裝封裝步驟

    芯片封裝是將芯片封裝在外部保護殼體內(nèi)的過程,通常包括以下步驟
    的頭像 發(fā)表于 12-18 18:13 ?1856次閱讀

    普源RSA5000系列頻譜分析儀介紹

    普源RSA5000系列頻譜分析儀是一種用于測量和分析信號的頻譜特性的儀器。它能夠測量信號的頻率、幅度、相位等參數(shù),并可以分析信號的頻率成分、功率譜密度、倒譜等特性。下面將詳細介紹普源RSA
    的頭像 發(fā)表于 12-01 17:50 ?503次閱讀
    普源<b class='flag-5'>RSA</b>5000系列頻譜分析儀介紹

    寫好的C算法模塊怎么樣封裝成SigmaStudio里能用的圖形模塊呢?

    請教下寫好的C的算法模塊,怎么樣封裝成SigmaStudio里能用的圖形模塊呢?哪里有關(guān)于這個的方法說明文檔?謝謝!
    發(fā)表于 11-30 06:42

    RIGOL普源RSA3015頻譜分析儀的應(yīng)用場景介紹

    普源RSA3015頻譜分析儀是一款高性能、寬頻率范圍、多功能的頻譜分析儀器。它具備高精度、高分辨率、快速掃描等特點,適用于各種復(fù)雜的信號分析和測量任務(wù)。該儀器能夠提供穩(wěn)定的本振信號,實現(xiàn)寬頻帶接收
    的頭像 發(fā)表于 11-27 18:12 ?502次閱讀
    RIGOL普源<b class='flag-5'>RSA</b>3015頻譜分析儀的應(yīng)用場景介紹

    阿里云雙十一WoSign SSL國密RSA雙證書首購4折

    國密/RSA雙SSL證書應(yīng)用,滿足等保、關(guān)保、密評等測評中,對網(wǎng)絡(luò)與通信安全的技術(shù)要求以及商用密碼合規(guī)應(yīng)用要求。
    的頭像 發(fā)表于 11-09 14:48 ?416次閱讀
    阿里云雙十一WoSign SSL國密<b class='flag-5'>RSA</b>雙證書首購4折