相关疑难解决方法(0)

字符串的快速哈希

我有一组ASCII字符串,假设它们是文件路径。它们既可以很短也可以很长。

我正在寻找一种可以计算此类字符串的哈希的算法,该哈希也将是字符串,但具有固定的长度,例如youtube video id:

https://www.youtube.com/watch?v=-F-3E8pyjFo
                                ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

MD5似乎是我所需要的,但是对我来说,拥有短的哈希字符串至关重要。

是否有可以执行此操作的shell命令或python库?

python algorithm bash hash hashids

5
推荐指数
2
解决办法
8260
查看次数

截断后的 MD5 的 ECDF 图

在该L的油墨,它说,截断MD5是均匀分布的。我想使用 PySpark 检查它,我首先在 Python 中创建了 1,000,000 个 UUID,如下所示。然后截断 MD5 的前三个字符。但是我得到的图与均匀分布的累积分布函数并不相似。我尝试使用 UUID1 和 UUID4,结果相似。符合截断 MD5 均匀分布的正确方法是什么?

import uuid
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.distributions.empirical_distribution import ECDF
import pandas as pd
import pyspark.sql.functions as f
%matplotlib inline

### Generate 1,000,000 UUID1 

uuid1 = [str(uuid.uuid1()) for i in range(1000000)]  # make a UUID based on the host ID and current time
uuid1_df = pd.DataFrame({'uuid1':uuid1})
uuid1_spark_df =  spark.createDataFrame(uuid1_df)
uuid1_spark_df = uuid1_spark_df.withColumn('hash', f.md5(f.col('uuid1')))\
               .withColumn('truncated_hash3', f.substring(f.col('hash'), 1, 3))

count_by_truncated_hash3_uuid1 = …
Run Code Online (Sandbox Code Playgroud)

python md5 pyspark uniform-distribution

5
推荐指数
1
解决办法
390
查看次数

标签 统计

python ×2

algorithm ×1

bash ×1

hash ×1

hashids ×1

md5 ×1

pyspark ×1

uniform-distribution ×1