我正在尝试散列,并且我想将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