首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >铁皮与沙发pbkdf2哈希不匹配

铁皮与沙发pbkdf2哈希不匹配
EN

Stack Overflow用户
提问于 2015-10-22 21:24:52
回答 1查看 138关注 0票数 4

我的问题上下文: Linode KVM实例上的Fedora 22 64位,CouchDB v.1.6.1,SBCL1.2.16

CouchDB:我创建一个密码为"testpass"的用户。在_users数据库中创建的相应文档包含(除其他外):

代码语言:javascript
复制
{ ...
  "password_scheme": "pbkdf2",
   "iterations": 10,
   "name": "test",
   "roles": ["reader"],
   "type": "user",
   "derived_key": "7b0cad0d2762b448b88684332e68988e801195ad",
   "salt": "2e4bcf85f39279ab9d1e1336a00dce0e"
...}

所以我在同一台机器上说:

代码语言:javascript
复制
REPL>(in-package :ironclad)
REPL>(byte-array-to-hex-string 
         (pbkdf2-hash-password 
             (ascii-string-to-byte-array "testpass") 
             :salt (hex-string-to-byte-array "2e4bcf85f39279ab9d1e1336a00dce0e")
             :digest 'sha1 
             :iterations 10))

"ce55610fe10bc49703f0df95adb6c9c9c71e3f8e"
REPL>

因此,来自铁皮的输出"ce55610fe10bc49703f0df95adb6c9c9c71e3f8e"与沙发上的"7b0cad0d2762b448b88684332e68988e801195ad"不匹配。

我试过所有支持的摘要,都是铁板一块的,但没有运气。有谁知道会出什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 22:48:53

这很简单: CouchDB使用"2e4bcf85f39279ab9d1e1336a00dce0e" salt作为二进制字符串,而使用hex-string-to-byte-array将其转换为字节数组。解开它会给你不同的盐。这很容易查证:

代码语言:javascript
复制
(node1@127.0.0.1)1> couch_passwords:pbkdf2(<<"testpass">>, <<"2e4bcf85f39279ab9d1e1336a00dce0e">>, 10).
<<"7b0cad0d2762b448b88684332e68988e801195ad">>
(node1@127.0.0.1)2> couch_passwords:pbkdf2(<<"testpass">>, <<50,101,52,98,99,102,56,53,102,51,57,50,55,57,97,98,57,100,49,101,49,51,51,54,97,48,48,100,99,101,48,101>>, 10).
<<"7b0cad0d2762b448b88684332e68988e801195ad">>
(node1@127.0.0.1)3> couch_passwords:pbkdf2(<<"testpass">>, <<46,75,207,133,243,146,121,171,157,30,19,54,160,13,206,14>>, 10).
<<"ce55610fe10bc49703f0df95adb6c9c9c71e3f8e">>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33291035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档