web服务用户之间的加密


Encryption between web service users

我有一个web服务(类似于在线商店),用户保存他们的数据。我需要加密这些数据,这样只有管理员和用户自己才能读取这些数据。

每个管理员和用户都有自己的密码散列存储在数据库中。

首先我想使用RSA(公钥/私钥),但是我不知道如何使用管理员和用户的不同密码来访问加密的数据。

BTW:我可以提示用户和经理每次尝试访问加密数据时输入他的密码(与数据库中的散列数据进行比较并解密安全数据)。

请帮助和原谅我的英语不好。提前感谢!

编辑:最简单的方法是使用硬编码的主密码加密/解密,但我认为这是非常非常不安全的。好的,我想我明白了。1. 生成唯一密钥2. 使用对称加密对数据进行唯一密钥加密(1)3.用用户密码加密(1)中的唯一密钥,并将其与用户凭据一起存储4. 用经理的密码加密(1)中的唯一密钥,并将其与经理的凭据一起存储

现在当经理想要访问数据时,我提示他输入密码,然后从(4)中解密哈希,从(1)中获得唯一密钥并解密安全数据。来自user的解密是相同的:(3)->(1)->data

那么现在的问题是使它可用于多个用户->user_data/managers, lol

EDIT3:忘记了:用户创建一次数据,然后管理人员将其用于内部使用。

如果您不介意每次用户需要访问数据时提示输入密码,那么您可以考虑使用mcrypt php模块。不过,在实施任何措施之前,一定要做足调查。如果你不小心,它很容易不安全使用。

我认为您应该使用经过标准验证的技术。这听起来像我的方式应该是SSL连接和良好的安全服务器。我相信您绝对不需要加密数据,而只需为其所有者或通过某些特权层次结构(通过web服务安全逻辑)提供访问。如果您需要保护数据不被窃取,请使用操作系统的加密分区。