"double salting" 密码 python

"double salting" a password with python

我想在 python 中创建一个 "double salted" 密码,它应该给出与下面的 php 代码相同的结果。

php代码:sha1($salt . sha1($salt . sha1($password)));

希望有人能帮助我解决我的问题。

您可以在此处申请functools.reduce()

from hashlib import sha1
from functools import reduce

result = reduce(lambda a, b: b + sha1(a.encode()).hexdigest(), (password, salt, salt, ''))

您还可以链接函数调用(这将提高约 30% 的效率,但没有那么紧凑):

from hashlib import sha1

result = sha1((salt + sha1((salt + sha1(password.encode()).hexdigest()).encode()).hexdigest()).encode()).hexdigest()