关于 PHP RFC2104 HMAC SHA1 加密的问题,求遇到过的大神解答 ?

2017-04-17 17:48:40 +08:00
 dapeng

公司和法国一家银行做在线支付对接,对方的平台是 .net, 我这边是 php ,技术人员沟通对接的可能性比较小;

提交 form 表单时需要进行 RFC2104 规则的 HMAC 加密校验,可是我这边加密后的字符串 和对方一直对不上,不知道有没有做过 RFC2104 加密规则的大神,帮忙看下,谢谢

<?php

$str = '6321857*17/04/2017:11:39:39*62.73EUR*an2017041712*pay test*3.0*EN*ansel*eli@outlook.com**********';

$key = '82C153B8EF860BF0386AB3F3C730ECA0C5B5EEP2';

echo  hash_hmac('sha1',$str,$key);

我这边输出加密后的值为 : 7dc7b51f6a12567cf22017d7f0e3ee1dba066058

对方返回的错误是 :

The value of the seal is computed from a secret key and from the string : 

6321857*17/04/2017:11:39:39*62.73EUR*an2017041712*pay test*3.0*EN*ansel*eli@outlook.com**********

The first six and the last six characters of the expected control MAC value are : 

71FC1D****************************C81CB1

我的环境为 PHP7

2009 次点击
所在节点    程序员
4 条回复
torbrowserbridge
2017-04-17 17:52:12 +08:00
编码问题考虑了吗?
shoaly
2017-04-17 17:58:13 +08:00
让对方提供一个他们 加密前和 加密后的字符串
然后本地先无论是 加密->解密 还是字符串加密 都匹配上 再来联调
dapeng
2017-04-17 17:58:43 +08:00
@torbrowserbridge ,加密时的编码 ? 文件编码是 utf8
dapeng
2017-04-17 18:00:07 +08:00
@shoaly ,是的,,实在不行就让业务这样去和他们联系;
对吧的文档时间 是 2006 年,那时 php5.3 还没出来吧!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355443

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX