是否可以使用多个私钥(PHP)进行加密?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

或者:如何为一堆用户存储加密数据?

我承认,这是一个愚蠢的问题,私人密钥仅限于一个人,正如该术语所暗示的。但我有以下情况:

用户Tom在数据库中输入需要加密存储的数据。用户决定他希望将这些信息提供给Jim和Bob。用户John和Jayne一定不能解密它。当然,对于用户Tim来说,他们也不会对服务器进行黑客攻击,并且可以访问加密数据和执行加密/解密的脚本。

我认为使用PHP openssl_public_encrypt函数的公钥/私钥方法在这里不起作用,因为两个用户需要拥有该“私钥”来解密数据。

我想这是一个相当普遍的问题,但是如果它很重要,它必须在PHP(也许是MySQL)中完成。

提问于
用户回答回答于

这就是它在OpenPGP(以及其他系统)中的工作方式: - 你正在生成用于加密数据本身的秘密对称密钥; - 然后,这个对称密钥用Tom的密钥加密; - 同样,对称密钥可以用Jim和Bob的公钥加密,允许他们解密密钥,然后解密数据

用户回答回答于

PHP为此提供了一个函数openssl_seal()。此函数接受一组公钥,并对数据进行加密,以便可以使用任何一个相应的私钥对其进行解密(使用openssl_open())。

扫码关注云+社区