记录一次php对接java接口rsa签名

1.对方提供的东西:test-pfx.pfx 密码:000000    xdzf_cfca_prd.cer


xdzf_cfca_prd.cer这是一个公钥文件,可以通过notepad++打开,看见公钥内容,但是pfx文件无法直接打开,而且pfx文件还有一个密码,于是想把pfx文件里面的内容获取到。


2.使用php获取pfx里面的内容,打印出来,实验证明php是可以直接使用pfx文件的,没必要把pfx拆出pem在使用。

 //路径
    $filePath = './test-pfx.pfx';
    $pkcs12 = file_get_contents( $filePath );
 //000000为pfx的密码
    if ( openssl_pkcs12_read( $pkcs12, $certs, '000000' ) ) {
     print_r($certs); 
 }
 die;

运行结果:

记录一次php对接java接口rsa签名


发现里面是一对公私钥。


3.于是才弄明白了整体对接的流程。


php获取pfx里面私钥,然后把数据通过私钥签名发送给java,java通过和我这边一对的公钥验证(也就是pfx里面的公钥)签名,然后给php返回数据,java那边也有一对公钥和私钥,提供给php的只是xdzf_cfca_prd.cer公钥部分。也就是java通过他的私钥签名,然后返回给php,php利用xdzf_cfca_prd.cer公钥验证签名。也就是整个流程有两对公钥私钥。php用到了第一对pfx里面的私钥和第二对里面的公钥。


4.具体php代码实现


https://www.wlphp.com/?post=263


上一篇:数据库的使用你可能忽略了这些


下一篇:Linux下安装telnet