我目前正在做一个相当小的项目,用户数量处于低两位数。我想让登录尽可能简单,这意味着像电子邮件 + 密码这样的东西,或者理想情况下只发送带有唯一代码的电子邮件。
注意:我有时会使用散列和加密作为同义词,因为我不知道我想/可以使用哪个。
无论如何,电子邮件是每个帐户的唯一标识符。不需要将电子邮件以纯文本形式存储,因为它只需要用于登录或密码重置,因此在这两种情况下,用户都需要手动输入他的电子邮件,因此我可以比较哈希值。说的再简单点,我想加密用户用来登录的唯一标识符。
现在这就是我挣扎的地方。我想加密邮箱地址,但是有几个限制:
我目前的想法是使用 AES-CBC,电子邮件本身就是 IV。然而,这需要
AES(K, K) != AES(N, N)
,我不确定是否是这种情况,它似乎也不安全。
正如您现在可能已经猜到的那样,我对加密并不是很熟悉,但目前正在阅读它。也许我在完全错误的道路上并试图找到不存在的东西。
然而,很明显电子邮件本身需要(或应该)受到保护,我想以最好的方式为这个用例做到这一点。