Or:如何为一群用户存储加密数据?
我承认,这是一个愚蠢的问题,正如术语所暗示的那样,私钥仅限于一个人使用。但我有以下场景:
用户Tom输入需要加密存储在数据库中的数据。用户决定要将此信息提供给Jim和Bob。用户John和Jayne不能解密它。当然也不包括用户Tim,他入侵了服务器,可以访问加密数据和执行加密/解密的脚本。
我认为使用PHPs openssl_public_encrypt函数的公钥/私钥方法在这里是行不通的,因为两个用户需要有那个“私钥”来解密数据。
我猜这是一个相当普遍的问题,但如果它很重要,它必须用PHP (也许还有MySQL )来完成。
发布于 2011-01-05 22:33:55
在OpenPGP (和其他系统)中就是这样做的:-生成秘密对称密钥,用于加密数据本身;-然后,用汤姆的密钥加密这个对称密钥;-还可以用吉姆和鲍勃的公钥加密对称密钥,允许他们解密密钥,然后再解密数据
发布于 2011-01-06 12:36:37
PHP为此提供了一个函数- openssl_seal()
。此函数接受一组公钥,并对数据进行加密,以便可以使用任何一个相应的私钥对其进行解密(使用openssl_open()
)。
发布于 2011-01-05 22:32:55
我不了解PHP中的库。但一般来说,该过程如下所示:
为每个收件人使用对称密钥对文件数据进行加密,使用收件人的公钥对密钥进行加密所有这些都保存在PKCS#7
中
当搜索"PHP和PKCS7“时应该会有一些结果...
https://stackoverflow.com/questions/4605139
复制相似问题