您将如何在 Rails 应用程序中存储用户的 API 密钥?请注意,我说的是作为资源提供者,即 API 密钥用于我的服务。
假设我们有一些资源,我们有 1000 个 API 密钥,允许用户访问该资源。
天真的方法是以明文形式存储它,但如果数据库遭到破坏 - 所有 API 密钥都消失了。
聪明的方法是存储散列和加盐,但这意味着我必须这样做:
ApiKeys.where(resource: '....').each do { |key| key.password == params[:api_key] }
这非常耗时(1000 次散列比较)。
我无法进行搜索,因为哈希是加盐的。
谷歌对这个问题有点沉默。
关于如何更有效地实施它的任何想法?