本文概述了中国建设银行银企直联测试中遇到的问题与解决方案。测试中出现密钥交互成功后前置机代理程序报错,经分析是解密失败因key与系统时间不符。解决办法是将服务器时间调至与银行服务器同步,重启前置机程序。提醒未来测试需保持时间一致。
关键词:银企直联、中国建设银行、密钥交互、银企测试
参考文档:
建行CCIP加解密指导文档(非国密版RSA加密)
2023年2月测试环境批处理及任务安排(对应测试时必看,可向银行获取)
更新日志:
20230209V1.0.0:初稿
20230824V1.0.1:补充相关参考文档
1.问题描述
问题现象、报错信息
问题发生阶段:银企测试中,与银行密钥交互已成功,隔天启动前置机代理程序时报错。
启动前置机代理程序后提示报错:
公钥端口启动后成功。获取银行密钥失败:pad block corrupted。
查看前置机日志情况:
2.原因分析
分析问题出现的可能原因(视情况而定)
pad block corrupted:java解密失败
根据日志查看,报错时间端为解密银行返回的密钥后出现的返回报错。
参考:java签名、加解密失败原因总结_格子的博客-CSDN博客
Java对接SM4加密过程中遇到的一些问题记录_凉茶冰的博客-CSDN博客
按规则(包含系统时间)生成的key去解密银行返回密钥,提示失败,要么key有问题了,要么密钥有问题。
在排除银行有问题的情况下,等同于说就是key有问题。
因为key编码包含了当前系统日期,就从系统日期入手。
检查发现(向银行获取如下图所示文件):
银行当前日期为2023-05-25(实际日期2023-02-09对应服务器日期),而我发现我配置的当前前置机代理程序上测试时间是2023-05-24,导致生成的key不对。
来源文件:2023年2月测试环境批处理及任务安排(对应测试时必看)
或者参考下图:
3.解决方法
解决思路/操作步骤
把服务器时间调整到2023-05-25,重启前置机代理程序即可。
4.应用小结
注意事项;补充说明(视情况而定)
测试时,不管什么时候做建行现金管理版本国密版银企测试,都需要确保前置机所在电脑的时间与银行测试服务器的时间要一致。
建行CCIP加解密指导文档(非国密版RSA加密).docx(498.06KB)
推荐阅读