如何使用 Passlib 1.7+ 限制密钥长度

How to limit key length with Passlib 1.7+

服务器协议要求我使用有限的密钥大小导出密码哈希。这是给定的 JavaScript + CryptoJS 实现:

var params = {keySize: size/32, hasher: CryptoJS.algo.SHA512, iterations: 5000}
var output = CryptoJS.PBKDF2(password, salt, params).toString();

我想在 Python 中使用 Passlib 重新实现它,例如

from passlib.hash import pkbdf2_sha512
output = pbkdf2_sha512.hash(password, salt=salt, rounds=5000)

Passlib API 不允许我指定密钥大小。怎么做呢?

如果派生密钥太长,只需将其截断至所需长度即可。每个字节与其他每个字节一样有效,使用哪个字节没有区别,没有顺序。