使用第三方库的解决windows下Apache+PHP调用SSL函数假死问题

最近忙着做竞赛项目,现在搞的是用PHP写一个CGI的程序。功能是和网页控件进行交互,对网页的数据进行加密解密的功能。

本想这调用PHP内置的openssl函数完成这些功能的,结果发现PHP每次调用openssl时网页会假死,导致无法完成功能。这个问题google了好久,至今也没有发现有人遇见类似的状况。问了别人,发现他们都是在linux平台下进行的开发,所以推断是平台兼容性的问题。

由于项目时间紧张,没有时间详细分析这些源代码,所以只能采用其他的方式解决。

从php手册上看见了一个开源代码网站,找到了一个以openssl为标准所创建的开源库,贴上链接:http://phpseclib.sourceforge.net/

按照他的demo代码,导入库,完成相应功能。贴上我的PHP代码


<?php
$plaintext = "hehe";
include('Crypt/RSA.php');
echo "<p>".$plaintext."</p>";
$rsa = new Crypt_RSA();
$fp=fopen("svr_public_key.pem","r");  //pksc#1的公钥文件
$pub_key=fread($fp,8192);
fclose($fp);
$rsa->loadKey($pub_key); // public key

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($plaintext);
echo "<p>".$ciphertext."</p>";

$rsa2 = new Crypt_RSA();
$rsa2->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$fp=fopen("svr_pravite_key.pem","r");   //pksc#1的私钥文件
$pub_key=fread($fp,8192);
fclose($fp);
$rsa2->loadKey($pub_key); // private key
$deciphertext=$rsa2->decrypt($ciphertext);
echo "<p>".$deciphertext."</p>";

?>

由此,顺利完成公钥加密,私钥解密。

微吐槽一句,这个库真心不错呀!

接下来会继续对这个库进行使用和分析,下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值