如何使用CakePHP匿名化数据库中的凭据
我的数据库中的登录凭据有点问题。 我在做一个敏感项目,所有数据都需要匿名。 这是我的问题: 我正在使用电子邮件地址和密码来识别我的用户。但是电子邮件地址不是匿名数据,例如:如何使用CakePHP匿名化数据库中的凭据,php,security,cakephp,encryption,Php,Security,Cakephp,Encryption,我的数据库中的登录凭据有点问题。 我在做一个敏感项目,所有数据都需要匿名。 这是我的问题: 我正在使用电子邮件地址和密码来识别我的用户。但是电子邮件地址不是匿名数据,例如:firstname。lastname@domain.com。所以我需要匿名这些数据 对于我的其他数据,如lastname或firstname,我在CakePHP中使用Security::encrypt($firstname,$privatekey)。(我的私钥对于每个用户都是唯一的) 但我的电子邮件地址是用于用户登录的,如果我
firstname。lastname@domain.com
。所以我需要匿名这些数据
对于我的其他数据,如lastname
或firstname
,我在CakePHP中使用Security::encrypt($firstname,$privatekey)
。(我的私钥对于每个用户都是唯一的)
但我的电子邮件地址是用于用户登录的,如果我用同样的方式对其进行加密,则登录不再有效。我试图加密我的登录表单发送的电子邮件,但结果与第一次加密不同
我无法使用SHA方法加密此数据,因为我需要在用户界面中显示它
我目前唯一能找到的解决方案是用我自己的方式加密这些数据,但它并不安全
我的问题是:
- 可以加密此数据并保持登录工作李>
- 如果是,我怎么做李>
如果您愿意,您甚至可以使用私钥/公钥,因为您的用户熟悉它们2-way encryption?&仅供参考,加密电子邮件地址不会使数据匿名,因为加密是可逆的。如果需要以无法恢复的方式匿名数据,则需要使用强加密单向散列(至少是SHA-256),最好使用salt。这将使数据或多或少不可恢复(如果salt保持安全,即使它不安全,仍然需要字典攻击来恢复任何有意义的数据)@GordonM如果我使用SHA256散列我的电子邮件地址,我无法显示它。我们使用的加密方法是每个用户都有一个唯一的私钥和一个salt,所以反转起来更复杂it@ThomasRollet然后你有两个相互矛盾的问题。如果数据是匿名的,那么它就不能显示,因为这就是匿名的全部意义。如果可以显示,则不能匿名,因为它可以通过明文数据段(甚至可能包含用户的姓名)来识别特定用户。你把匿名和安全混淆了吗?我不确定我的想法是否可行。但是,如果我是你,我会这样做。我可能会使用两列作为电子邮件地址,但用途不同。一列存储哈希版本,另一列是非对称加密版本,我可以用脱机私钥或类似的东西解密:)