def hashPassphrase(passphrase, hashFunc):
passphrase = univ.OctetString(passphrase).asOctets()
# noinspection PyDeprecation,PyCallingNonCallable
hasher = hashFunc()
ringBuffer = passphrase * (64 // len(passphrase) + 1)
# noinspection PyTypeChecker
ringBufferLen = len(ringBuffer)
count = 0
mark = 0
while count < 16384:
e = mark + 64
if e < ringBufferLen:
hasher.update(ringBuffer[mark:e])
mark = e
else:
hasher.update(
ringBuffer[mark:ringBufferLen] + ringBuffer[0:e - ringBufferLen]
)
mark = e - ringBufferLen
count += 1
return hasher.digest()
评论列表
文章目录