我想使用加密将用户的电子邮件地址存储在 MySQL 数据库中,以确保如果数据库遭到破坏,这些地址不会被公开。我相信如果我用 mysql 加密它们AES_ENCRYPT() https://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_aes-encrypt函数我无法在中创建索引INNODB
表因为我必须使用BLOB
数据类型。如果表变得非常大,则选择将花费很长时间。
保护电子邮件地址但仍然能够快速查询并将它们保留为列中的唯一值的最佳解决方案是什么?
当用户在您的网站上注册时,使用 AES_ENCRYPT() 加密电子邮件。
INSERT into users (email) VALUES (AES_ENCRYPT('[email protected] /cdn-cgi/l/email-protection', 'aeskey'));
当您查询数据库时,您可以像这样调用 AES_DECRYPT() 函数:
SELECT AES_DECRYPT(email, 'aeskey') from users;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)