有对接过邮储支付的吗,他们给的密钥怎么使用

公司最近要对接邮储的支付,对方要将请求体用 SM2 加密,他们只有 JAVA 的 demo,我不懂 JAVA。我在网上找的国密包 lpilp/guomi 加密使用的密钥是一串 16 进制的字符,邮储给的密钥是加密过后的,不知道要怎样使用。

下面是 JAVA 生成的密钥方式

公钥

私钥

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 10

java 给的是用 base64 编码的 pkcs8 证书和 x509 公钥证书。 php 要用的话,你提到的 php 使用的 sm2 库,需要把 java 提供的证书提取出来明文,然后给 php 的库用

5个月前 评论
deatil (作者) 5个月前
yhyh (楼主) 5个月前
yangweijie 5个月前

你可以用 java 写个解密,放 tomcat 里,然后用 php 调用那个 java 就行了。

5个月前 评论
yhyh (楼主) 5个月前

以前对接过 EMS 的也是只有个 Java 的 demo,用的 SM4,网上找不到示例,硬啃了一天 Java。又因为那个服务器 openssl 版本的问题不支持 SM4,找了 PHP 个扩展包,最后实际上 PHP 写起来也就几行代码,但是其他语言的 demo 都不给一个是真无语。

5个月前 评论
yhyh (楼主) 5个月前

大佬发一篇 sm2 处理过程的文章,学习一下啊。

4个月前 评论

上个月对接过 EMS 下单功能,确实只有个 Java 的 demo,PHP 本地 openssl 支持 sm4,可以直接实现 sm4 加解密,但测试环境及线上 openssl 不支持,除非升级 openssl,再编译 php,大动干戈,最后写了个 python,基于 gmssl 实现 sm4 加解密,php 这边根据 openssl 的算法列表判断是否支持 sm4,不支持就去执行 python

4个月前 评论