import hashlib import base64 import logging # 配置日志 logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s") logger = logging.getLogger(__name__) def md5_encrypt(text): # 创建一个md5哈希对象 md5_hash = hashlib.md5() # 更新哈希对象的数据,注意这里需要将字符串转换为字节类型 md5_hash.update(text.encode('utf-8')) # 获取十六进制表示的哈希值 encrypted_text = md5_hash.hexdigest() return encrypted_text def get_ldap_password(password): try: # 计算MD5哈希值 md5pass = md5_encrypt(password) # 每两个字节压缩成一个十六进制字符 ba_keyword = bytearray() for i in range(0, len(md5pass), 2): try: ba_keyword.append(int(md5pass[i:i + 2], 16) & 0xff) except Exception as e: logger.error(f"======================错误密码:{md5pass}") logger.error(e, exc_info=True) return None # Base64编码 newstr = base64.b64encode(ba_keyword).decode('utf-8') return newstr except Exception as err: logger.error(f"出错的密码:{password}") logger.error(err, exc_info=True) return None if __name__ == '__main__': print(get_ldap_password("123456"))