📜  在Python中使用 uuid3() 和 uuid5() 生成哈希 id

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

在Python中使用 uuid3() 和 uuid5() 生成哈希 id

Python 的 UUID 类定义了四个函数,每个函数生成不同版本的 UUID。让我们看看如何使用uuid3()uuid5()基于 MD5 和 SHA-1 哈希生成 UUID。
加密哈希可用于生成不同的 ID,以 NAMESPACE 标识符和字符串作为输入。支持加密哈希生成的函数是:

  1. uuid3(namespace, 字符串) :此函数使用字符串提到的命名空间的MD5哈希值来生成该特定字符串的随机 id。
  2. uuid5(namespace, 字符串) :此函数使用字符串提到的命名空间的SHA-1哈希值来生成该特定字符串的随机 id。

uuid 模块定义了以下用于 uuid3() 或 uuid5() 的命名空间标识符:


代码#1:

Python3
# Python3 code to demonstrate working
# of uuid3() and uuid5()
import uuid
 
# initializing a string
url = "https://www.geeksforgeeks.org/fibonacci-sum-subset-elements/"
 
# using NAMESPACE_URL as namespace
# to generate MD5 hash uuid
print ("The SHA1 hash value generated ID is : ",
            uuid.uuid3(uuid.NAMESPACE_URL, url))
 
# using NAMESPACE_URL as namespace 
# to generate SHA-1 hash uuid
print ("The MD5 hash value generated ID is : ",
            uuid.uuid5(uuid.NAMESPACE_URL, url))


Python3
# Python3 code to demonstrate working 
# of uuid3() and uuid5()
import uuid
 
# initializing a string
qualified_dns = "www.geeksforgeeks.org"
 
# using NAMESPACE_DNS as namespace
# to find MD5 hash id
print ("The SHA1 hash value generated ID is : ",
    uuid.uuid3(uuid.NAMESPACE_DNS, qualified_dns))
 
# using NAMESPACE_DNS as namespace
# to generate SHA-1 hash id
print ("The MD5 hash value generated ID is : ",
    uuid.uuid5(uuid.NAMESPACE_DNS, qualified_dns))


输出:
The SHA1 hash value generated ID is :  e13a319e-16d9-3ff5-a83c-96564007998e
The MD5 hash value generated ID is :  dbe3178d-4b83-5024-9b26-9b8e1b280514


代码#2:

Python3

# Python3 code to demonstrate working 
# of uuid3() and uuid5()
import uuid
 
# initializing a string
qualified_dns = "www.geeksforgeeks.org"
 
# using NAMESPACE_DNS as namespace
# to find MD5 hash id
print ("The SHA1 hash value generated ID is : ",
    uuid.uuid3(uuid.NAMESPACE_DNS, qualified_dns))
 
# using NAMESPACE_DNS as namespace
# to generate SHA-1 hash id
print ("The MD5 hash value generated ID is : ",
    uuid.uuid5(uuid.NAMESPACE_DNS, qualified_dns))
输出:
The SHA1 hash value generated ID is :  adbed9f7-bbe3-376f-b88d-2018b8f6db07
The MD5 hash value generated ID is :  f72cdf8a-b361-50b2-9451-37a997f8675d


注意: ID 生成是两步过程。首先,字符串和命名空间的连接发生,然后作为输入给相应的函数以返回生成的 128 UUID。如果再次选择具有相似字符串的相同 NAMESPACE 值,生成的 ID 也将相同。参考: https://docs。 Python.org/2/library/uuid.html