(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"
使用SHA1
、SHA256
、SHA512
、PBKDF_SHA1
或者PBKDF2_SHA256
。我的数据库中没有一个用户的文档包含"derived_key"
。几乎所有用户的文档都没有定义"password_scheme"
。如果他们中的任何一个文档定义了"password_scheme"
,它始终是"simple"
(并且从不是"pbkdf2"
)。
一旦我确切地知道CouchDB使用哪种哈希算法,我就需要知道使用了多少轮或迭代来对密码进行哈希。
Firebase的文档说:
必须提供用于对密码进行哈希的轮数(对于SHA1
、SHA256
和SHA512
,轮数介于1和8192之间;对于PBKDF_SHA1
和PBKDF2_SHA256
,轮数介于0和120000之间)。
然而,我找不到任何有关这方面的文档/信息。
所以我的问题是:
- CouchDB对“简单”的“password_scheme”使用什么哈希算法?(是SHA1、SHA 256、SHA 512、PBKDF_SHA1、PBKDF2_SHA256还是其他算法?)
1.使用多少轮或迭代来对密码进行哈希运算?
2条答案
按热度按时间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.这只是一轮哈希运算。
agxfikkp2#
为了完整起见,这个
simple
模式 * 不是 * CouchDB的最新版本所使用的(当然不是〉= 2)。如果需要生成或验证CouchDB样式的密码,请参阅couch-pwd。