我正在嘗試散列,並且我想將323322056
的輸出與base64
字符串匹配,以使它們的crc32
值相等。散列函數沒有響應
test1.py
import binascii
result = binascii.crc32('supersecretpassword')
print(result) #323322056
test2.py
import binascii, socket, base64
socket.setdefaulttimeout(0)
i = 0
while True:
if binascii.crc32(base64.encodestring(i)) == 323322056:
print(base64.encodestring(i))
i += 1
我收到此錯誤:
TypeError: object of type 'int' has no len()
完整堆棧跟蹤
Traceback (most recent call last):
File "C:/Users/Ajay/PycharmProjects/itertools/test.py", line 6, in <module>
if binascii.crc32(base64.encodestring(i)) == 323322056:
File "C:\Python27\lib\base64.py", line 313, in encodestring
for i in range(0, len(s), MAXBINSIZE):
TypeError: object of type 'int' has no len()
預期輸出:
MTIxMjY5MTAwNg==
,從而滿足此條件:
import binascii
print(binascii.crc32("MTIxMjY5MTAwNg=="))
# 323322056
你是什麼例外的全面回溯?那麼'socket.setdefaulttimeout(0)'與你的問題有什麼關係? –
你打算蠻力強制CRC32值嗎?然後請注意,不同長度的所有空值的字節串會產生不同的「base64」值。用這種方式強制密碼確實需要很長的時間。 –
@MartijnPieters是的,我只是嘗試選項:D – ajkumar25