gpt4 book ai didi

javascript - 注册检查电子邮件是否存在而不检查数据库

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:21 27 4
gpt4 key购买 nike

考虑到我想用 Javascript(例如 Angular)制作一个多步骤注册表单,并且我不想在所有步骤完全完成之前做一些 ajax。我认为可能正在 Javascript 中执行一个函数,该函数将用户电子邮件作为参数来确定数据库中是否存在电子邮件。但实际上我不希望我的函数执行 Ajax 调用。考虑每次用户在数据库中注册时应该更新该算法。

这有点难说,但我的意思是应该有一种算法可以在没有项目的情况下确定项目是否存在。 (我知道这看起来有点傻。但实际上并非如此)。

您一次从数据库中获取所有项目,并在了解所有项目的情况下编写算法,在不知道数据库项目的情况下确定给定项目是否存在于数据库中。

考虑登录过程系统可以在不知道用户密码的情况下判断用户密码是否正确。系统只知道一些关于用户密码的事情(散列或 md5 或...)

因此我们可以在现有用户表上执行一个函数并获取一些值和字符串或...并且使用这些值我们可以在不知道所有项目的情况下检测用户电子邮件是否已存在于数据库中。

我提出问题的原因之一是性能问题(考虑具有如此多记录的用户表。)第二个原因只是为了花哨 :)

最佳答案

从电子邮件地址生成哈希。假设哈希是一个 20 位的值(例如,只取 md5 哈希的低 20 位)。这意味着您需要一个 128K 字节的表,其中每个位要么是 0 要么是 1,具体取决于是否有一封散列为该值的电子邮件。您可以通过生成哈希并在表中查找来轻松检查是否存在电子邮件。 1 表示电子邮件已被使用或存在哈希冲突。 0 保证在生成表时未使用电子邮件。为减少冲突的可能性,请确保表中的位数远大于用户数。 20 位给出 100 万个哈希桶。

关于javascript - 注册检查电子邮件是否存在而不检查数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com