3DES二倍长踩坑无法解决,最后使用java做api然后使用php请求解决

前言

最近部门内接到一个和app打通的项目(在第三方app中添加一个入门,点击进入显示我们的商城并且传用户登录的参数给我们[对方使用的加密方式是3des 二倍长 加密方式]),我们这边使用的是php,对方底层使用的是java,中间有个比较坑的问题就是,对方使用的3des加密我们这边使用php参照了网上的各种方法始终无法完美计算出一致的加密和解密结果。最后在网上看到java的原生加密类,想着要不参照这个改造一个。无赖改好跑不起来,中途还出现过好多种新想法和解决思路都无法实现。最后还是使用原生java写一个http服务然后编译跑起来使用远程api请求的方法解决了这个问题。

解决思路一

使用jsp调用java类,基础太差最后还是无法实现,直接打脸。

解决思路二

使用golang打开一个http服务然后用户访问API时通过shell运行java的class,本来本地测试是没有问题,无赖放到服务器后60%都获取不到shell执行后管道输出的内容,最后还是放弃了。

解决思路三(有效思路)

使用java直接写一个http服务,然后引入加密的类库,当用户请求api时直接调用类库里的方法加密或则解密后输出json。

参考代码

3des二倍长加密方法:
3des加密(双倍长)(ECB,CBC)详细介绍
java实现http服务:
Java 简单实现HTTP服务器

本文只提供解决思路,需要具体的解决方案或则源码,可以给我留言!