在 Python 中缩短/压缩字符串

问题描述 投票:0回答:0

我正在开发一个应用程序,它以 JSON 格式存储 pdf 文档和文档的大量信息。为了避免多次加载相同的文档,文件的 MD5 哈希值用作 ID:

def create_hashsum(file_name):
    with open(file_name, 'rb') as file_to_check:
        # read contents of the file
        data = file_to_check.read()    
        # pipe contents of the file through
        md5_hash = hashlib.md5(data).hexdigest()
     return md5_hash

输出示例:

dfa04947f231d1c8cc7e755956c90bcf

然而,理想情况下,我想创建第二个更短且易于记忆的人性化 ID。要求:

  • ~6 个字符长(字母 + 数字)
  • 最大文件数:10,000
  • 低概率的碰撞风险是可以接受的
  • 易于在 AWS Lambda (python) 中实施

我正在寻找可以解决这个问题的算法、python 库或函数。

如果之前没有解决这个问题,我的问题是,如果我使用say MD5的前6个字符,碰撞的概率是多少?

PS:我尝试了 smalz 库,但它需要我无法在工作笔记本电脑上安装的依赖项。

python hash cryptography md5
© www.soinside.com 2019 - 2024. All rights reserved.