我们有一个与移动前端通信的 REST API。提交一次性密码后,后端将发出一个令牌(随机 UUID v4 字符串)供移动应用程序用作后续请求的身份验证。服务器将与用户一起将该令牌的散列版本存储在数据库中。
我们希望确保验证令牌花费尽可能少的时间。
问题
什么样的散列/加密足以将令牌存储在数据库中?像 SHA256 这样的快速哈希是否足够好,或者我们应该使用像 bcrypt 这样的慢速哈希?如果使用 SHA256,我们是否需要包含盐,因为原始的未散列令牌只是一个随机的 16 字节 UUID?