在Python和Php之间数据传输哪个加密算法最好?

-1 投票
3 回答
2418 浏览
提问于 2025-04-15 19:34

我正在写一个基于客户端/服务器的程序,服务器端用的是Php,客户端用的是Python,我需要确保数据在两个方向上的传输都是安全的。

所以,我的问题是:

在Python和Php之间进行数据传输时,哪个加密算法最好?

  • 我不能使用Https
  • 需要在Python和Php中使用密钥进行解密/加密
  • 我不需要有共享的公钥,密钥可以在Python和Php中手动设置
  • 因为我不知道怎么自己实现算法,所以如果能提供两个语言的例子就太好了。
  • 我的数据没有像银行网站那么重要,只是想加密以防止在传输过程中被窃听。

我试着查找这个问题,但没有找到适合我的答案。

C#和PHP、ColdFusion、Ruby、Python之间的兼容加密

提前谢谢你。

3 个回答

1

Greg Hewgill说得对,他给的建议是最好的。我之前尝试自己设计一个令牌系统,虽然有点成功,但效果远没有达到理想状态。所以我认为使用SSL是最好的选择。

PHP里面自带了openssl这个功能,所以你可以很方便地使用它,这也是我现在在用的。如果你打电话给你的主机服务提供商,问他们能不能启用openssl,这应该不难,前提是它还没有被激活。

至于Python,我不太确定具体有哪些功能,但只用公钥来加密就足够了,因为你的服务器会用私钥来解密这些数据。

你可以通过命令行生成公钥和私钥。这里有个链接可以参考:

http://travistidwell.com/blog/2013/02/15/a-better-library-for-javascript-asymmetrical-rsa-encryption/

他使用了一个JavaScript库来进行客户端加密,不过Python也应该有类似的选择。

4

不要试图自己发明一种加密方案。这非常难,连专业人士都不一定能做到。SSL这个安全协议套件是经过几十年的研究和实践经验总结出来的,你是无法重新发明的。

如果你想保护通过HTTP传输的私人数据,唯一正确的选择就是SSL。其他的做法只会让自己受损。

1

这个问题的答案通常是“要看情况”。如果你只是想对大量数据进行对称加密,那么你可能会选择像AES这样的加密方式。不过,使用加密的方式有很多种,有些方法可能最终会不安全,这就是为什么使用https是个好主意,因为它相对高级一些,更不容易出错。我不是安全研究员,但这些都是我在安全方面听到的一些普遍建议。

总之,有一个Python库(编辑:链接已删除,见评论),你可以用mcrypt在PHP中处理加密和解密。

撰写回答