我正在进行一个加密项目,并已将Python中的PyCrypto模块用于所有加密算法。
当我将PHP与MongoDB连接时,在用户注册时,我需要用特定的公钥和私钥链接每个用户,生成RSA密钥的代码是用Python编写的,我使用PHP将所有用户信息存储在MongoDB中。
如何在不首先在shell中执行脚本的情况下调用Python脚本并在PHP中使用输出,因为这是一个耗时的过程?
PHP和Python都有交叉编译器吗?这样我就可以在同一个编译器上执行了?
您可以使用exec(它最终在shell中运行脚本)
如文档中所述,该方法的第一个参数将是您想要运行的命令,第二个参数是一个引用,它将保存输出
没有交叉编译器AFAIK。对于一个非玩具项目,我会非常谨慎地使用那些承诺可以同时使用PHP和Python的东西。:)
为了避免每次运行Python脚本时都创建一个进程,可以使用sockets实现服务器-客户端架构,以便在Python和PHP之间进行通信。在您的案例中,服务器是您的加密库,而客户端是查询服务器的PHP脚本。
- Python套接字文档:https://docs.python.org/2/howto/sockets.html
- PHP套接字文档:http://php.net/manual/en/book.sockets.php
这本质上意味着Python脚本是一个长时间运行的脚本(以避免一次又一次地创建它的成本)。