CouchDB用来加密密码的“简单”散列算法是什么?

dhxwm5r4  于 2022-12-09  发布在  CouchDB
关注(0)|答案(2)|浏览(171)

(TL大卫:我在最下面有两个问题。)
我一直在翻阅CouchDB的文档以了解其哈希算法,但我无法找到重要的细节。
我收集的大部分信息来自此页面:1.5.2.认证数据库
我的问题是:
我在Cloudant上的CouchDB示例中的_users数据库中有很多用户。
我需要能够将用户从CouchDB迁移到Firebase。
Firebase为此提供了一个非常方便的auth迁移工具,但是,为了使用它的auth迁移工具,我需要确切地知道"simple"password_scheme使用的是哪种哈希算法。
对于my _users数据库中的每个用户,我都有可用的"salt""password_sha"。给定名称"password_sha",我假设"simple""password_scheme"使用SHA1SHA256SHA512PBKDF_SHA1或者PBKDF2_SHA256。我的数据库中没有一个用户的文档包含"derived_key"。几乎所有用户的文档都没有定义"password_scheme"。如果他们中的任何一个文档定义了"password_scheme",它始终是"simple"(并且从不是"pbkdf2")。
一旦我确切地知道CouchDB使用哪种哈希算法,我就需要知道使用了多少轮或迭代来对密码进行哈希。
Firebase的文档说:
必须提供用于对密码进行哈希的轮数(对于SHA1SHA256SHA512,轮数介于1和8192之间;对于PBKDF_SHA1PBKDF2_SHA256,轮数介于0和120000之间)。
然而,我找不到任何有关这方面的文档/信息。
所以我的问题是:

  1. CouchDB对“简单”的“password_scheme”使用什么哈希算法?(是SHA1、SHA 256、SHA 512、PBKDF_SHA1、PBKDF2_SHA256还是其他算法?)
    1.使用多少轮或迭代来对密码进行哈希运算?
qlvxas9a

qlvxas9a1#

我在CouchDB主页上的几个聊天链接中发布了同样的问题,CouchDB的所有者Robert Newson告诉了我下面的in Slack
“简单”是一个一轮的SHA-1(带盐)https://github.com/apache/couchdb/blob/main/src/couch/src/couch_passwords.erl#L26
所以要直接回答这两个问题:
1.“简单”CouchDB哈希算法使用SHA1。
1.这只是一轮哈希运算。

agxfikkp

agxfikkp2#

为了完整起见,这个simple模式 * 不是 * CouchDB的最新版本所使用的(当然不是〉= 2)。

iterations = 10
keylen = 20
size = 16
encoding = 'hex'
digest = 'SHA1'

如果需要生成或验证CouchDB样式的密码,请参阅couch-pwd

相关问题