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

acm*_*cme 18 php encryption private-key

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

我承认,这是一个愚蠢的问题,私钥仅限于一个人已经暗示的术语.但我有以下情况:

用户Tom输入需要加密存储在数据库中的数据.用户决定要将此信息提供给Jim和Bob.用户John和Jayne一定不能解密它.当然也不是用户Tim攻击服务器并且可以访问加密数据和执行加密/解密的脚本.

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

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

Nic*_*sky 15

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


caf*_*caf 12

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