Как исправить «TypeError: объект, поддерживающий необходимый буферный API» в hashlib - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь что-то кодировать, но это не работает из-за вышеуказанной проблемы. Вот мой код:

import hashlib
import replit
import os
def ty(s, password, times):
  l = []
  for i in range(0,50):
    l.append(0)



  attempt = ""
  attempt = attempt.encode()
  attempt = getattr(hashlib, s)(attempt)
  while (str(attempt.hexdigest()) != password):
    for i in range(0,50 - len(l)):
      l.append(0)
    if l[0] == 0:
      l[0] = 1
    attempt = ""
    for i in range(0, len(l)-1):
      if l[i] >= 1:
        l[i] += 1
      if l[i] == 256:
        l[i] = 1
        l[i+1] = 1
      else:
        break

    for i in range(0, len(l)):

      try:
        l.remove(0)
      except ValueError:
        break


    for i in l:
      attempt = attempt + "" + chr(i)

    print(attempt)
    save = attempt
    attempt = attempt.encode()
    attempt = attempt.strip()
    for i in range(times):
      attempt = getattr(hashlib, s)(attempt)


    print(s, "x",times)
    if(len(l) > 1):
      break
  if str(attempt.hexdigest()) == password:

    os.system('clear')
    print(save)
    print(str(attempt.hexdigest()))


    quit()

Ошибка обычно появляется в цикле for, и я не могу точно сказать, что вызываетэто даже если я смотрел далеко и широко. это в python 3.7 и на repl.it, любая помощь, которую вы, ребята, могли бы оказать, была бы полезна!

...