Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 将电子邮件安全保存在黑名单中_Email_Security_Hash_Blacklist - Fatal编程技术网

Email 将电子邮件安全保存在黑名单中

Email 将电子邮件安全保存在黑名单中,email,security,hash,blacklist,Email,Security,Hash,Blacklist,我有一些网站,我希望没有帐户的人可以选择不接收电子邮件。这可以通过将他们的电子邮件地址存储在“黑名单”表中,并在发送一些邮件之前进行查找来实现 为了遵守数据保护,出于安全原因,我希望以某种方式存储加密/散列的电子邮件。我想到了简单的md5(密码),但这太容易破解/bruteforce了。第二个想法是使用bcrypt/scrypt来实现一个慢散列函数,但是它们对每个条目都有一些限制,所以我需要对每个条目的邮件进行散列以进行比较。如果运行时为O(n),n是黑名单条目的数量,那么这将相当缓慢 有没有其

我有一些网站,我希望没有帐户的人可以选择不接收电子邮件。这可以通过将他们的电子邮件地址存储在“黑名单”表中,并在发送一些邮件之前进行查找来实现

为了遵守数据保护,出于安全原因,我希望以某种方式存储加密/散列的电子邮件。我想到了简单的
md5(密码)
,但这太容易破解/bruteforce了。第二个想法是使用bcrypt/scrypt来实现一个慢散列函数,但是它们对每个条目都有一些限制,所以我需要对每个条目的邮件进行散列以进行比较。如果运行时为
O(n)
,n是黑名单条目的数量,那么这将相当缓慢


有没有其他方法可以安全地对邮件进行哈希处理,以便与黑名单进行快速比较?无论有多少个条目,它都应该是运行时。

您可以使用任何键派生函数,比如PBKDF2,甚至是BCrypt/SCrypt

因为散列必须是可搜索的,所以不能使用唯一的随机盐。相反,我们可以传递一个静态salt,它充当服务器端密钥

使用KDF,我们可以从成本因素中获益,这大大降低了暴力强迫的速度。如果攻击者可以访问数据库,但在服务器上没有权限(密钥仍然保密),静态salt/密钥可以防止暴力强制,这是典型的SQL注入场景。只要确保salt不是散列字符串的一部分,大多数BCrypt实现都会这样做,因为它们是为密码散列而设计的

这种方法的问题是,它不能适应未来更快的硬件。但即使KDF只需要几毫秒,这也比使用简单的散列要好。也许你应该问一下,他们可能知道更好的选择