CakePHP用户名加密/解密


CakePHP Username Encryption/Decryption

在我的CakePHP应用程序中,我正在尝试加密存储的用户数据,这在很大程度上是成功的。我可以使用beforeSave()afterFind()进行一般的加密/解密,但在加密/解密用户名时会遇到问题——问题是AuthComponent会在数据库中查找与输入的用户名完全匹配的用户名。在将用户名发送到AuthComponent之前,我对其进行了加密,但这不会起到任何作用,因为我加密字符串(使用Security::rijndael不会总是产生相同的结果(就像哈希一样)。

我一直在lib文件夹中查找AuthComponent,但我不太愿意做任何更改。所以我想我只剩下两个问题:

  1. 有可能在数据库中加密用户名并让Cake读取它们吗?(我几乎可以肯定这是肯定的,所以…)
  2. 我该怎么做?A也许是行为?对AuthComponent的简单修改

谢谢!

根据您的说法,我认为没有理由使用AuthComponent,我只使用安全实用工具。

就像您已经说过的,如果您想在数据库中保存哈希而不是纯文本,那么您需要使用beforeSave()回调,您的哈希将使用Security::hash()完成。

需要注意的是,根据定义,HASH是无法解密的。因此,如果您真正想要的是加密/解密,那么您将需要使用Security::cipher()