如何使用openssl进行加密


How to use openssl for encryption?

本质上我想做的是在我的cURL API中,我希望使用API的客户端在他们的服务器上加密特定的敏感数据,在它离开他们的服务器之前,然后在我的服务器上解密。

我看到你可以使用openssl_encrypt()函数,尽管我真的找不到任何解释它足够清楚的东西。

流程示例如下:

$dataToSend = 'mysupersecretstring';
// encrypt data
// connect and send to my server

服务器端:

$receivedString = '39bfy4f28d30g74fb34g79';
// string above is received
// string is decrypted decrypted
// $receivedString is now plaintext and can now be used on this server

我希望我解释得足够清楚。如果你有任何问题,请不要犹豫,因为这很重要,我有一个有效的解决方案。

简单地说:不要。

使用HTTPS而不是依赖于应用层加密。

除非你是一个专业的密码学家,有一个特定的用例来解释为什么你希望避免TLS(使用公钥固定),并且有一个适当的计划来管理加密密钥,否则你可能不应该编写自己的加密技术。如果有,也不要部署/发布。

如果您发现自己需要在应用层加密信息(这里许多有效的加密用例),了解您将遇到的所有陷阱,并可能考虑使用libsodium来代替。