📜  RIPEMD 哈希函数

📅  最后修改于: 2022-05-13 01:54:48.170000             🧑  作者: Mango

RIPEMD 哈希函数

哈希函数是一个在使系统安全方面发挥巨大作用的函数,因为它将提供给它的正常数据转换为固定长度的不规则值。我们可以想象它是我们家中的振动器。当我们将数据放入这个函数时,它会输出一个不规则的值。它输出的不规则值称为“哈希值”。哈希值只是数字,但通常以十六进制编写。计算机将值管理为二进制。哈希值也是一种数据,通常以二进制形式进行管理。

RIPEMD

RIPEMD(RACE Integrity Primitives Evaluation Message Digest)是一组哈希函数,由Hans Dobbertin、Antoon Bosselaers和Bart Preneel于1992年开发。RIPEMD的开发思路是基于MD4,MD4本身就是一个弱哈希函数。它被开发用于 32 位处理器。RIPEMD 的类型:

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

在职的

它是 RIPEMD-160 哈希算法的一个子块。消息以 512 比特的块为单位由压缩函数处理,并通过使用 5 个不同版本的该子块的两个流传递,其中常量“k”的值也不同。

RIPEMD 的不同版本

  • 第一个 RIPEMD 没有被认为是一个好的散列函数,因为一些设计缺陷导致了一些主要的安全问题,其中一个是 128 位的输出大小太小并且容易被破坏。在下一个版本RIPEMD-128中,设计缺陷被删除,但输出仍然是 128 位,这使得它的安全性降低。
  • RIPEMD-160是下一个版本,它将输出长度增加到 160 位,并提高了散列函数的安全级别。此函数旨在替代 128 位散列函数 MD4、MD5 和 RIPEMD-128。
  • RIPEMD-256 和 RIPEMD-320是 RIPEMD-128 的扩展,提供与 RIPEMD-160 和 RIPEMD-128 相同的安全性,专为喜欢大哈希值而不是更高安全级别的应用程序而设计。

示例 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())

输出:

The hexadecimal equivalent of hash is :
1b4470fb3147534653ddca6d7a1b2109b5449089

在上面的示例中, new()构造函数将算法名称作为字符串并为该算法创建一个对象。然后update()方法接受一个二进制字符串,以便散列函数可以接受它。 x()散列函数对其进行编码,然后使用hexdigest()打印十六进制等效编码字符串。

示例 2:让我们看看是否要找到编码哈希值的字节表示。

# 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())

输出:

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