我已经看到了许多关于如何通过 OpenSSL 和对称加密使用 AES 的示例。但我使用的是非对称加密。我的 web 应用程序正在存储一些使用公钥加密的敏感数据,如果管理员可以提供私钥密码,则稍后只能使用私钥解密。
我的实现运行良好,但是,我注意到非常小的输入会产生相当大的加密结果。例如,一个 16 个字符的输入变成了 288 个字节的加密(它解密为原始的 16 个字符)。由于这些加密结果存储在数据库表中,我希望获得更接近输入大小的加密值。也需要可预测的存储长度。
我正在使用 RSA 公钥/私钥,但 PHP 的 OpenSSL 实现默认使用什么密码?我还没有找到一个使用公钥/私钥时如何指定密码的示例,并且openssl_public_encrypt函数不允许指定密码常量之一。我应该在生成 pub/pri 密钥时以某种方式指定密码(使用openssl_pkey_new)?