Función hash RIPEMD

La función Hash es una función que tiene un papel muy importante en hacer que un sistema sea seguro, ya que convierte los datos normales que se le dan como un valor irregular de longitud fija. Podemos imaginarlo como un Shaker en nuestros hogares. Cuando ponemos datos en esta función, genera un valor irregular. El valor irregular que genera se conoce como «valor hash». Los valores hash son simplemente números, pero a menudo se escriben en hexadecimal. Las computadoras manejan los valores como binarios. El valor hash también es un dato y, a menudo, se administra en formato binario.

RIPEMD

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) es un grupo de funciones hash desarrollado por Hans Dobbertin, Antoon Bosselaers y Bart Preneel en 1992. La idea de desarrollo de RIPEMD se basa en MD4, que en sí mismo es una función hash débil. Está desarrollado para funcionar bien con procesadores de 32 bits. Tipos de RIPEMD:

  • RIPEMD-128
  • RIPEMD-160
  • RIPEMD-256
  • RIPEMD-320

Laboral

Es un subbloque del algoritmo hash RIPEMD-160. El mensaje se procesa mediante la función de compresión en bloques de 512 bits y se pasa a través de dos flujos de este subbloque utilizando 5 versiones diferentes en las que el valor de la constante ‘k’ también es diferente.

Diferentes versiones de RIPEMD

  • El primer RIPEMD no se consideró como una buena función hash debido a algunas fallas de diseño que conducen a algunos problemas de seguridad importantes, uno de los cuales es el tamaño de salida de 128 bits, que es demasiado pequeño y fácil de romper. En la próxima versión RIPEMD-128 , se elimina la falla de diseño, pero la salida sigue siendo de 128 bits, lo que la hace menos segura.
  • RIPEMD-160 es la próxima versión que aumenta la longitud de salida a 160 bits y aumenta el nivel de seguridad de la función hash. Esta función está diseñada para funcionar como reemplazo de las funciones hash de 128 bits MD4, MD5 y RIPEMD-128.
  • RIPEMD-256 y RIPEMD-320 son extensiones de RIPEMD-128 que brindan la misma seguridad que RIPEMD-160 y RIPEMD-128, que está diseñado para aplicaciones que prefieren un valor hash grande en lugar de un mayor nivel de seguridad.

Ejemplo 1:

# Python program to demonstrate
# RIPEMD 
  
  
import hashlib
  
# Passing the required algorithm
# as string to the new constructor
x = hashlib.new('ripemd160')
  
# passing GeeksforGeeks 
# to x() which uses 
# ripemd 160 algorithm for
# hashing
x.update(b"GeeksForGeeks")
  
# printing the equivalent hexadecimal
# value. 
print("The hexadecimal equivalent of hash is :") 
print(x.hexdigest())

Producción:

The hexadecimal equivalent of hash is :
1b4470fb3147534653ddca6d7a1b2109b5449089

En el ejemplo anterior, el new()constructor toma el nombre del algoritmo como una string y crea un objeto para ese algoritmo. Luego, el update()método toma una string binaria para que pueda ser aceptada por la función hash. La x()función hash lo codifica y luego hexdigest()se imprime una string codificada hexadecimal equivalente.

Ejemplo 2: veamos si queremos encontrar la representación de bytes del valor hash codificado.

# Python program to demonstrate
# RIPEMD 
  
  
import hashlib
  
# Passing the required algorithm
# as string to the new constructor
x = hashlib.new('ripemd160')
  
# passing GeeksforGeeks 
# to x() which uses 
# ripemd 160 algorithm for
# hashing
x.update(b"GeeksForGeeks")
  
# printing the equivalent hexadecimal
# value. 
print("The byte equivalent of hash is :") 
print(x.digest())

Producción:

The byte equivalent of hash is :
b'\x1bDp\xfb1GSFS\xdd\xcamz\x1b!\t\xb5D\x90\x89'

Publicación traducida automáticamente

Artículo escrito por gluttony777 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *