在节点中生成可通过passlib.hash.pbkdf2_sha512

时间:2019-07-19 09:48:53

标签: encryption sha512 pbkdf2

我在python api上使用passlib pbkdf2_sha512来验证用户密码。据我所知,算法需要的输入字符串必须遵循以下格式:$pbkdf2-digest$rounds$salt$checksum

Node中是否有一个库可以生成我的sha512密码并以这种格式返回它,或者我需要编写自己的算法来以这种方式设置格式并选择随机的盐,回合等。

有关python library的更多信息。

我试图重现Node中python库生成的字符串:

function sha512(password) {
  const salt = crypto.randomBytes(16);

  const rounds = 29000;

  // I used sha256 for testing purpose, it shouldn't matter for the sake of the result
  const passwordHashed = crypto.pbkdf2Sync(password, salt, rounds, 256, 
  'sha256').toString('Base64');

  console.log(passwordHashed);
}

我为“密码”生成了一个哈希,我的代码返回了 用Base64编码:

7uLTDHjAhQX0yIqXptXuhHIygNogaZRcDqa7ckc0XCj4FAAW29V6KzIzRuJKJoTqN9xjfGOyGZ21X0J1vemQLThcnIXgwt2E84VrW/ai+BdVaUPHiT8J0mutOM9j52l1fFLT7rl5Rmr8qiyGzBaWj6i0sRkrdba9IVDHr1HxGAoM8qEuCSHgKsBVVX65+1pf2DDEUsgGShzE31xiuwF8UpHwq5Cxhiq8ER5xQnKj/j3mG/AAoylPVu30Jd4aFNoRi2Lfhk+6nFwLS0R222R38Jio93qzVD0Nb8kjXqjoXIYxTY6ZOumlsXWR/NmhTQi31x6JggoO1Z1jSFnCVUUd2Q==

并且在熟练的base 64中使用python库生成时

98jZicV16ODfEsEZeYPGHU3kbrUrvUEXOPimVSQDD44

这显然是更小的String。该库提到它们的编码是非常基本的,除了交换了一些字符外,但此结果对我来说似乎不太有意义。 (我使用了与图书馆网站示例中相同的盐大小和相同的轮数)

0 个答案:

没有答案