Python:从预先存在的md5校验和中生成ldap密码



我有一个存储为md5校验和的密码数据库,我想用它填充ldap目录。

我知道如何从纯文本密码创建ldap密码,但还没有找到从md5密码哈希中创建ldap密码的方法。

import base64
import hashlib
from passlib.hash import ldap_md5
password = 'strongpassword'
md5sum = 'f93fc10472a31bb3061aa0b45e228c5a'
ldap1 = ldap_md5.hash(password) # correct
md5 = hashlib.md5(password.encode())
ldap2 = '{MD5}' + base64.b64encode(md5.digest()).decode() # correct
ldap3 = '{MD5}' + base64.b64encode(md5sum.encode()).decode() # incorrect
print(ldap1) # {MD5}+T/BBHKjG7MGGqC0XiKMWg==
print(ldap2) # {MD5}+T/BBHKjG7MGGqC0XiKMWg==
print(ldap3) # {MD5}ZjkzZmMxMDQ3MmEzMWJiMzA2MWFhMGI0NWUyMjhjNWE=
print()
print('I need to transform those bytes:')
print(md5sum.encode()) # b'f93fc10472a31bb3061aa0b45e228c5a'
print()
print('into whatever this is:')
print(md5.digest())    # b'xf9?xc1x04rxa3x1bxb3x06x1axa0xb4^"x8cZ'

我只需要函数byterarray.fromhex((或byters.fromhex((.

import base64
import hashlib
from passlib.hash import ldap_md5
password = 'strongpassword'
md5sum = 'f93fc10472a31bb3061aa0b45e228c5a'
ldap1 = ldap_md5.hash(password) # correct
md5 = hashlib.md5(password.encode())
ldap2 = '{MD5}' + base64.b64encode(md5.digest()).decode() # correct
ldap3 = '{MD5}' + base64.b64encode(bytearray.fromhex(md5sum)).decode() # correct
ldap4 = '{MD5}' + base64.b64encode(bytes.fromhex(md5sum)).decode() # correct
print(ldap1) #{MD5}+T/BBHKjG7MGGqC0XiKMWg==
print(ldap2) #{MD5}+T/BBHKjG7MGGqC0XiKMWg==
print(ldap3) #{MD5}+T/BBHKjG7MGGqC0XiKMWg==
print(ldap4) #{MD5}+T/BBHKjG7MGGqC0XiKMWg==

最新更新