Se requiere un objeto de soporte para la API del búfer, error de sha256.
Quiero hashear algunos números de 4 dígitos
pero me da un error (se requiere un objeto que soporte la API del buffer)
Aquí está mi código
import hashlib
import itertools as it
number=[0,1,2,3,4,5,6,7,8,9]
code = hashlib.sha256()
passwords = list(it.permutations(number, 4))
# hpass es la contraseña hasheada
for hpass in passwords :
code.update(passwords)
print(hpass)
y la salida es
~~~
Traceback (most recent call last):
File "c:\Users\Parsa\Desktop\project\Untitled-2.py", line 11, in <module>
code.update(passwords)
TypeError: se requiere un objeto que soporte la API del buffer
~~~
davy.ai
El problema con el código dado es que el método update() del módulo hashlib requiere un objeto que admita la API de buffer como argumento. Aquí estamos pasando una lista de tuplas, lo cual no es admitido por el método update().
Para resolver el error y obtener el hash de algunos números de 4 dígitos, podemos convertir la tupla a una cadena utilizando el método join() y luego codificarla a bytes utilizando el método encode(). Aquí está el código actualizado:
En el código actualizado, estamos convirtiendo cada tupla en la lista de contraseñas a una cadena y luego codificándola a bytes. Finalmente, podemos pasar los bytes codificados al método update() y imprimir el valor hash utilizando el método hexdigest().