0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RSA算法的JNI封装步骤

电子工程师 2020-06-04 17:45 次阅读

RSA算法的JNI封装思路

JNI(Java Native Interface)是一组API和标准,作用是实现Java和其他语言(主要是C/C++)的通信。出于运算速度等方面的考虑,一些对运算性能要求较高的算法往往是基于C/C++语言(与硬件关联性更强)实现的。如果应用程序需要基于JAVA编程实现时,这就会有一些矛盾。此时,通过JNI技术,Java开发者可以在不了解算法内容的情况下,方便快捷的使用C/C++加密算法的动态库,实现跨语言调用。例如有如下的应用场景:嵌入式终端要基于RSA非对称算法完成与服务器之间的身份认证。终端通过加入加密芯片,可以快速安全实现基于RSA算法的签名验签工作,但是服务器端往往不会外加加密模块,往往会基于Openssl等开源库来移植RSA算法,进而实现高效运算的目的。这些库源码大多基于C语言实现,此时Java开发者就可以借助JNI技术来封装实现签名等功能。

封装步骤如下:

1. 使用java编译器生成调用RSA 加解密,签名验签的API头文件。

2. 根据生成的头文件和RSA的C源码库开源库,生成一个供JNI接口调用的静态库

3. 在JAVA源码中使用Native方法引入动态库的API,编译java程序

最终生成的文件结构如下图:

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

注意事项:

1. Java数据类型和本地数据类型需要做适当的转换,对应关系如下表:

O1BDS0ZG7ER{I80@@N3JN_3.png

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    124

    文章

    7285

    浏览量

    141108
  • RSA算法
    +关注

    关注

    0

    文章

    14

    浏览量

    7760
  • JNI
    JNI
    +关注

    关注

    0

    文章

    8

    浏览量

    7818
收藏 人收藏

    评论

    相关推荐

    泰克频谱分析仪RSA5126B_26.5G仪器无法开机案例

    有收到北京某高校送来的一台泰克频谱分析仪RSA5126B_26.5G维修仪器,当我们打开包装后泰克频谱分析仪RSA5126B_26.5G的外观成色相当不错,经过安泰仪器租赁/维修中心的工程师的仔细排查,下面给大家具体介绍一下泰克频谱分析仪维修情况及使用方法和操作
    的头像 发表于 04-07 11:26 547次阅读
    泰克频谱分析仪<b class='flag-5'>RSA</b>5126B_26.5G仪器无法开机案例

    全志R128 SDK HAL 模块开发指南——Crypto Engine

    */ uint32_t dir; uint32_t padding_mode; /*hash算法的填充模式*/ } crypto_hash_req_ctx_t; RSA 算法运算接口 主要实现
    发表于 03-21 10:44

    芯片封装封装步骤

    芯片封装是将芯片封装在外部保护壳体内的过程,通常包括以下步骤
    的头像 发表于 12-18 18:13 946次阅读

    普源RSA5000系列频谱分析仪介绍

    普源RSA5000系列频谱分析仪是一种用于测量和分析信号的频谱特性的仪器。它能够测量信号的频率、幅度、相位等参数,并可以分析信号的频率成分、功率谱密度、倒谱等特性。下面将详细介绍普源RSA
    的头像 发表于 12-01 17:50 262次阅读
    普源<b class='flag-5'>RSA</b>5000系列频谱分析仪介绍

    写好的C算法模块怎么样封装成SigmaStudio里能用的图形模块呢?

    请教下写好的C的算法模块,怎么样封装成SigmaStudio里能用的图形模块呢?哪里有关于这个的方法说明文档?谢谢!
    发表于 11-30 06:42

    阿里云双十一WoSign SSL国密RSA双证书首购4折

    国密/RSA双SSL证书应用,满足等保、关保、密评等测评中,对网络与通信安全的技术要求以及商用密码合规应用要求。
    的头像 发表于 11-09 14:48 262次阅读
    阿里云双十一WoSign SSL国密<b class='flag-5'>RSA</b>双证书首购4折

    EEMD方法的原理与算法实现步骤

    电子发烧友网站提供《EEMD方法的原理与算法实现步骤.pdf》资料免费下载
    发表于 10-23 11:44 0次下载
    EEMD方法的原理与<b class='flag-5'>算法</b>实现<b class='flag-5'>步骤</b>

    传统封装方法组装工艺的八个步骤(下)

    在上篇文章中我们讲述了传统封装方法组装工艺的其中四个步骤,这回继续介绍剩下的四个步骤吧~
    的头像 发表于 10-17 14:33 562次阅读
    传统<b class='flag-5'>封装</b>方法组装工艺的八个<b class='flag-5'>步骤</b>(下)

    如何用Rust通过JNI和Java进行交互

    近期工作中有Rust和Java互相调用需求,这篇文章主要介绍如何用Rust通过JNI和Java进行交互,还有记录一下开发过程中遇到的一些坑。
    的头像 发表于 10-17 11:41 400次阅读

    请问一般用硬件怎么实现rsa加密算法?

    一般用硬件怎么实现rsa加密算法?
    发表于 10-17 07:02

    FM8301常见现象及其解决办法

    , 48000000, 12000000, 48000000)”。串口通讯线有多种内部交叉,需调节开发板串口下方的选择跳线使之相匹配 。 Q4:FM15160 RSA 算法特性说明。 答
    发表于 09-14 06:32

    单片机常用的14个C语言算法简析

    算法(Algorithm):计算机解题的基本思想方法和步骤
    发表于 07-25 11:40 724次阅读

    WLCSP封装是一种非常小型的半导体芯片封装方式

    封装
    YS YYDS
    发布于 :2023年06月19日 18:57:55

    基于JAVA的RSA文件加密软件的设计与实现(源代码及论文)

    分析RSA算法的应用现状,论证文件加密应用RSA算法的可行性和意义。设计一套完整实用的RSA文件加密解决方案,具体编码实现。对
    发表于 06-09 16:01 0次下载

    如何使用RSA硬件加速能多快生成2048bit的密钥?

    先生, 平台:imx6ul BSP:L4.1.15_ 2.0.0_ GA的补丁 功能:CAAM加速中的RSA 2048位密钥生成 需要支持: 我指的是下面链接中的三个补丁, 然后RSA加速,发现
    发表于 05-06 08:05