【发布时间】:2014-04-29 23:02:49
【问题描述】:
我正在尝试使用 php 创建 seafile 用户。 http://www.seafile.com
已经存在的用户的哈希值如下:
PBKDF2SHA256$10000$9ee87caa42ed5b5fd3f62781d8df82af5e2d9e5e5250d22bf70336cc5e2fb060$478602208097c48b47042e25d026fec1b0363551a4f52aa2e2674f3093010215
所以我假设散列算法是 sha256,使用 10k 轮的 pbkdf2 密钥派生函数。之后的第一部分应该是用 $ 分隔的盐,然后应该是 pwd 哈希。
Seafile 是开源的,所以我试图找到生成此哈希的代码并找到 this one:
有一个名为hash_password_pbkdf2_sha256() 的函数应该可以完成这项工作。
当我尝试使用 php 创建与上述相同的哈希时(密码为“12345678”)
hash_pbkdf2('sha256', '12345678','9ee87caa42ed5b5fd3f62781d8df82af5e2d9e5e5250d22bf70336cc5e2fb060', 10000, 64)
我得到148f4d331b647bafa2b15d145814d56fbe40e13221aff6e53329680b4cadbc84 不等于上面的478602208097c48b47042e25d026fec1b0363551a4f52aa2e2674f3093010215
任何想法如何解决这个问题?
【问题讨论】:
标签: php hash sha256 password-encryption pbkdf2