记录一次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;

运行结果:

1.jpg

发现里面是一对公私钥。

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

检测方法:检测上次接收数据的结束位与下次接收数据的起始位(半个周期的低电平 与一个周期的高电平),但是,此时INPORT输入脚电平已变为低电平信号。 之后再连续检测16个半周期电平翻转,到达第9个1的前半周期(高电平), 之后INPORT变为低电平,再通过定时器0来模拟同步时钟,对曼彻斯特码进行解码。 注意:号发送顺序:先发校验位,紧接着是最高位、次高位····连发5位数据。 如本号是11100 00110 00000 00000 11100 10101 10100 00010 01011 01010 10010 最先接收到是第一个五位的校验位0,然后才是1110,依次类推。 下降沿为 1 上升沿为 0 整个程序的思想:每次采样完成,判断一次所采到的数据是否为1 ,若为1,继续采样,直到采完9个1, 若为0,丢掉数据,重新采样。从而实现是否有的判断。 ***********************************************************************************/ #include #include #include //增加部分:由于改版,读输入和蜂鸣器输入的io口有所更改 //----------------------------------------------------------------------------- // 16-bit SFR Definitions for 'F34x sfr16 SBRL1 = 0xB4; // Global CONSTANTS #define SYSCLK 12000000 // SYSCLK frequency in Hz #define BAUDRATE0 115200 // Baud rate of UART0 in bps #define BAUDRATE1 115200 // Baud rate of UART1 in bps #define BIT5 0x20 sbit SPK = P3^5; //蜂鸣器 sbit INPORT = P0^3; //解码输入 sbit wave = P1^7;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娃娃菜001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值