Hashear cada número de la lista de números a sha256 utilizando hashlib en Python.
Mis hashes son diferentes al sha256 estándar.
¿Cómo puedo hashear cada número de la lista a sha256 con hashlib en python?
Puedes ver mi resultado y otros resultados de convertidores en línea:
<h1>hash 9999 de https://emn178.github.io/online-tools/sha256.html</h1>
<pre><code>888df25ae35772424a560c7152a1de794440e0ea5cfee62828333a456a506e05
</code></pre>
<h1>hash 9999 de https://www.online-convert.com/result#j=96f7a8bb-2c97-4c6c-ae6d-7deda4f62e3c</h1>
<pre><code>888df25ae35772424a560c7152a1de794440e0ea5cfee62828333a456a506e05
</code></pre>
<h1>hash 9999 de https://passwordsgenerator.net/sha256-hash-generator/</h1>
<pre><code>888DF25AE35772424A560C7152A1DE794440E0EA5CFEE62828333A456A506E05
</code></pre>
<p>mi hash sha256 de 9999:</p>
<pre><code>877f59e9e62b9f0bfdc877653856410990e8aba4ac8b55ad06cd8cf5ecdfbc17
</code></pre>
este es mi código. ¿Alguien puede enseñarme cómo puedo solucionarlo?
import CSV
from hashlib import sha256
hash_dic = {}
numbers = []
count = 1
<h1>crear rango de números entre 1 y 9999</h1>
while count <= 9999:
numbers.append(count)
count += 1
<h1>crear diccionario de hashes sha256</h1>
for number in numbers:
hashed = sha256(bytes(number)).hexdigest()
hash_dic[number] = hashed
<h1>abrir archivo csv y ver hashes</h1>
with open("Desktop/passwords.csv") as passwrd:
reader = csv.reader(passwrd)
for row in reader:
csv_hash = row[1]
for key,value in hash_dic.items():
if csv_hash == value:
print(f"para {row[0]} la contraseña es {key}")
else:
pass
print(hash_dic)
<h1>print(number)</h1>
davy.ai
Para hashear cada número de una lista a sha256 con hashlib en Python, puedes usar el siguiente código:
Este código creará un diccionario
hash_dic
donde las claves son los números del 1 al 9999 y los valores son sus respectivos hash sha256.La razón por la cual tus hashes son diferentes al estándar sha256 probablemente se debe a una diferencia en la codificación. En tu código, estás usando
bytes(number)
para convertir el número a bytes antes de hashearlo. Esto codificará el número en la codificación por defecto (que suele ser utf-8). Para obtener el mismo hash que los convertidores en línea, debes usar la misma codificación que ellos.En el fragmento de código anterior, usamos
.encode()
para convertir el número a bytes usando la codificación por defecto. Alternativamente, puedes especificar la codificación explícitamente, de esta manera:Esto asegurará que la codificación sea consistente y que obtengas el mismo hash que los convertidores en línea.