[英]Laravel, storing encrypted secrets in a MySQL indexed column
我已经知道答案了,但是我想更多地了解下一步的发展方向。
我想在应用程序的数据库中通过加密来保护用户的电子邮件,但是作为电子邮件的电子邮件,我也希望它们作为用户表上的索引。
我正在为数据库播种,并不断收到错误:
[Illuminate\Encryption\DecryptException]
Invalid data.
我发现Crypt :: encrypt()生成的某些机密似乎超出了MySQL在唯一索引上的255个字节的限制。 我想最终我将不得不扩展Illuminate包的Encrypter类,并覆盖核心加密方法以使用不会扩展字符串的方法。
有什么我想念的东西可以做得更好吗? 无论如何,将它们存储为加密格式可能不是很有效,但是我想不出什么更好的方法了?
您的方法毫无意义,因为Crypt :: encrypt()自动将值“加盐”。 同一封电子邮件每次都会生成不同的加密值。 自行检查:
for($i = 1; $i <= 10; $i++)
{
echo Crypt::encrypt('secret');
}
即使您设法克服索引列大小限制,您仍然将无法检查重复项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.