php调用java本地jar包(sm2)

前言

需要使用到sm2算法,但是客户只提供了sm2的java版本,网上也了解了一下这个算法,看的也是蒙的。也在github上找到了相关php实现sm2的代码,但是测试总是和客户发送的jar包对不上。想的是干脆直接调用客户发过来的jar算了。

思考

调用方式一般容易想到的就是两种:

  • 直接使用php的exec或者其他能够调用shell命令的函数执行 java -jar jar包,这种需要将客户发送过来的jar进行一次封装。
  • 把客户的demo,做成一个对外的接口,让php发送curl请求来调用。

因为搭建web站点,比较耗费服务器性能,并且只是为了这么一个小的调用,浪费经历搭建,维护,监控。实在是没有必要。
因此选择了第一种方式。如果需要第二种的可以自己去尝试。
安装包截图如下:
在这里插入图片描述
都封装好了,只需要执行入口函数代码即可:
在这里插入图片描述
就是这么一个入口的Java文件,需要做一次封装。

封装jar

走过的坑:
最开始我直接用idea打开入口文件,并添加引用,本来想直接运行但是好像连run按钮都没有出来,
在这里插入图片描述
不晓得是为啥。
于是新建了一个Java项目,把代码拷贝过来,报错了,提示xxx不存在,一看就是类库jar没有找到,于是
添加依赖库:选择客户给的demo里面所有的jar依赖。
在这里插入图片描述
然后我们修改 代码把需要加密的内容通过命令行参数传进来,
在这里插入图片描述

打包

我们在菜单file–>project Structure中新建一个artifacts
在这里插入图片描述
配置如图:注意入口类的名称即可
在这里插入图片描述
点击确定后:勾选
在这里插入图片描述
然后build
在这里插入图片描述
完成之后会出现:
在这里插入图片描述
这时候我们来运行一下:

在这里插入图片描述

php调用

在这里插入图片描述
浏览器访问:
在这里插入图片描述

一个最简单的demo就完成了

猜你喜欢

转载自blog.csdn.net/abc8125/article/details/111872032
sm2