为了账号安全,请及时绑定邮箱和手机立即绑定

关于PHP和JAVA之间的AES加密互通问题

关于PHP和JAVA之间的AES加密互通问题

扬帆大鱼 2019-04-25 13:15:19
公司今日接到一个需求,要与银行方面进行对接,接收银行方面 推送过来的加密信息,解密后入库进行统计,由于银行方是JAVA环境,我司是PHP环境,所以需要写一个PHP的解密方法,查阅各种文档后还是无法满足需求,无法进行解密,特来求助.银行方只有一个加密流程文档:加密方式:AES/ECB/PKCS5Padding1、将data中的字段转成json格式如下:{"userId":"12345678911111233","state":"2","cardNo":"625966","time":"20171212","extInfo":""}2、URLEncode对josn字符串进行编码UTF-8防止中文乱码    URLEncoder.encode(data, "UTF-8")     %7B%22userId%22%3A%2212345678911111233%22%2C%22state%22%3A%222%22%2C%22cardNo%22%3A%22625966%22%2C%22time%22%3A%2220171212%22%2C%22extIn     fo%22%3A%22%22%7D3、使用aesKey对URLEncode后的字符串进行AES加密, 得到data:    aesKey=Spdbccc-testtest     XBD5nXa7oAnsWo/l843zUfmuhpmWGKEieJoJXxZEHPun1zfQhEPBFKv5kXZMM8i2Vr9RJwZeW/zn6OScGSlRTNVaytu2M5CDABw6B1grqxCqjTu/fKTp3hpMJd0riMB7H7ZK     5xGUBu2nGgacjPmVcVl8Xm34fdArx17DkHbHqOWgiwmesk0C/lgKK7hkyuiuVtEQPmc02Ipjx3JGyJ+59g==我这边先是按照查询的文档中所说直接使用PHP自带的mcrypt扩展进行解密,发现php7.2已经弃用该扩展,换成openssl方式使用AES-128-ECB进行解密返回值是false;后来我转变思路,先用openssl以AES-128-ECB模式对第二步的串进行加密,获取到的结果和步骤三中的完全不一样,我改用先获取openssl的加密模式列表然后循环加密,输出各个加密方式的结果,发现没有一个能对上,到此以我的水平已经不知道该如何进行下一步了,特来求助!
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

他们可能使用的是对称加密,用的是二进制,你这个的问他们的技术 如何实现的,看一下Java的代码


查看完整回答
反对 回复 2019-05-16
  • 2 回答
  • 0 关注
  • 1581 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号