请求来生成令牌。自己尝试一下。中的身份验证工作流程散列密码目前该字段以纯文本形式存储。这是一个安全风险因为如果数据库被泄露所有密码也会被泄露。要解决此问题您可以在将密码存储到数据库之前对其进行哈希处理。您可以使用加密库对密码进行哈希处理。安装它复制首先您将更新中的和方法以在将密码存储到数据库之前对密码进行哈希处理复制该函数接受两个参数哈希函数的输入字符串和哈希轮数也称为成本因子。
增加哈希轮数会增加计算哈希所需的时间。这里需要在安全性和性能之间进行权衡。哈希轮数越多计算哈希值所需的时间就越长这有助于防止暴力攻击。然而更多轮的散列也意味着 Whatsapp 号码列表 用户登录时计算散列的时间更多。这个堆栈溢出答案对这个主题有很好的讨论。还会自动使用另一种称为加盐的技术来增加暴力破解哈希的难度。加盐是一种在散列之前将随机字符串添加到输入字符串的技术。这样攻击者就无法使用预先计算的哈希表来破解密码因为每个密码都有不同的盐值。
您还需要更新数据库种子脚本以在将密码插入数据库之前对密码进行哈希处理复制运行种子脚本您应该看到存储在数据库中的密码现在已经过哈希处理。该字段的值对您来说会有所不同因为每次使用不同的盐值。重要的是该值现在是一个散列字符串。现在如果您尝试使用正确的密码您将面临错误。这是因为该方法尝试将用户请求中的明文密码与数据库中的哈希密码进行比较。更新方法以使用哈希密码复制您现在可以使用正确的密码登录并在响应中获取。总结和最后评论在本章中您学习了如何在中实现身份验证。 |