Tengo un problema bastante extraño. Para una tabla Hash distribuida, necesito poder hacer algunas operaciones matemáticas simples en hashes MD5. Estos incluyen una suma (suma numérica representada por el hash) y una operación de módulo. Ahora me pregunto cuál es la mejor forma de implementar estas operaciones. Estoy usando hashlib para calcular los hash, pero como los hashes que obtengo son de cadena, ¿cómo puedo calcularlos?Operaciones en Python hashes
13
A
Respuesta
23
Usted puede utilizar el método hexdigest()
para obtener dígitos hexadecimales, y luego convertirlos a un número:
>>> h = hashlib.md5('data')
>>> int(h.hexdigest(), 16)
188041611063492600696317361555123480284L
Si ya tiene la salida de digest()
, se puede convertir en dígitos hexadecimales:
>>> hexDig = ''.join('%02x' % ord(x) for x in h.digest())
>>> int(hexDig, 16)
188041611063492600696317361555123480284L
Editar:
Para el segundo caso, que es real es más fácil de convertir usando .encode('hex')
o binascii.hexlify
:
>>> int(h.digest().encode('hex'), 16)
188041611063492600696317361555123480284L
>>> int(binascii.hexlify(h.digest()), 16)
188041611063492600696317361555123480284L
Cuestiones relacionadas
- 1. Python hashes MD5 comparación
- 2. python - operaciones de lista
- 3. Hashes of Hashes Idiom en Ruby?
- 4. Incluyendo Hashes dentro de Hashes en Perl
- 5. operaciones de archivo de Python
- 6. Operaciones de elementos sobre tuplas en Python
- 7. C# hashes
- 8. hashes Inicialización
- 9. Python convenciones de nomenclatura para Diccionarios/Mapas/hashes
- 10. Convertir los hashes SHA1 base64'd a Hex hashes
- 11. Operaciones booleanas
- 12. Operaciones aritméticas en regex
- 13. Hashes vs. Multiple Params?
- 14. a grep hashes MD5
- 15. ¿Cómo comparo dos hashes?
- 16. Buenos hashes numéricos
- 17. ¿Vías principales sin hashes?
- 18. ¿Qué operaciones son operaciones atómicas
- 19. Hashes: Tablas, listas y mapas, ¿Oh, mi?
- 20. Las referencias en Perl: Arsenal de hashes
- 21. Recuperando varios hashes de Redis en Node.js
- 22. Cómo crear hashes SHA-256 en WinRT?
- 23. ¿Cómo funcionan los hashes en la programación?
- 24. Generar hashes únicos en Ruby/Rails
- 25. ¿Puede BerkeleyDB en perl manejar un hash de hashes de hashes (hasta n)?
- 26. Convertir matriz de hashes en hash-of-hashes, indexado por un atributo de los hash
- 27. ¿Qué hashes son hashes comunes? utilizado en la red y otros programas?
- 28. rubí Al comparar los hashes
- 29. Operaciones atómicas en Django?
- 30. Operaciones atómicas en ARM