我有一个包含用户加密电子邮件地址的表格。当新用户注册时,我希望检查输入的电子邮件地址是否已经存在于该表格中。我使用php中的
openssl_encrypt
函数对每个电子邮件地址进行加密。由于该函数即使传递相同的字符串参数也会返回不同的加密值,因此我不能检查电子邮件地址是否已经存在于该表格中。那么,有什么可行但安全的方法可以加密和检查电子邮件地址是否存在于该表格中呢?
hash
的答案可能会有帮助? - camelCasehash
函数和SHA-256
算法是否是一个好主意,还是有更好的哈希方式? - sha28kBLOB
数据并使用MySQL内置的AES_ENCRYPT()
函数存储电子邮件。然后,当您需要查找电子邮件地址时,可以执行WHERE AES_ENCRYPT(:email,:key) = user.email
...其中:email
是来自您的表单的电子邮件地址,:key
是您正在使用的加密密钥(可以是任何内容,如果您喜欢可以在config.php文件中设置,只要它在您的文档根目录之外即可)。 - CD001