myMD5
的对象,如下所示:<md5 HASH object @ 0xb79b9860>
这里是dir(myMD5)
:
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'block_size', 'copy', 'digest', 'digest_size', 'digestsize', 'hexdigest', 'name', 'update']
我想获取哈希字符串,为此,我需要调用myMD5.hexdigest()
。问题是我实际上在挑战(称为PyJail),并且禁止使用字符点(.
)。因此,我需要通过另一种方式调用此方法。有什么办法像函数一样调用它吗?像这样的东西:
hexdigest(myMD5)
我尝试执行此操作,但是不起作用:
getattr(myMD5, dir(myMD5)[-3]) # returns <classmethod object at 0xb79b998c>
PS;挑战也禁止其他元素,例如使用引号('
,"
),使用import
语句,使用exec
或eval
等内容]]假设我有一个名为myMD5的对象,如下所示:
这是dir(myMD5):['__class __','__ delattr __','__ doc __','__ format __','__ getattribute __','__ hash__'。 ..
getattr(myMD5, dir(myMD5)[-3])
返回要在对象上调用的方法,然后只需要使用括号()
运行该方法: