gpt4 book ai didi

python-3.x - 生成缩短网址的代码/算法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:03:25 25 4
gpt4 key购买 nike

我已经搜索了一段时间关于如何生成缩短的网址(例如 bit.ly 或 goo.gl 的工作原理),但没有成功。

我猜应该是这样的:

baseN(hash(long_url))

但我总是得到一个很长的摘要,而不是像 6 个字符这样的简短摘要。

在编码之前截断摘要是否安全(甚至有必要对其进行编码 - 我相信这是为了使其 URL '安全'但想问一下)并且只处理六个时是否没有冲突的可能性字符?

看起来(警告:我不懂数学)是 6 的阶乘! (例如 6*5*4*3*2*1)只会产生 720 种组合。

我还记得在某处读到过一个包含 100k 个项目的哈希表,粗略计算碰撞次数可能会产生约 17% 的碰撞几率。这对我来说是一个相当大的比例?

以下 Python 代码基于我对如何进行此类 url 缩短的理解:

import hashlib, base64

message = hashlib.sha512()
message.update("https://www.python.org/dev/peps/pep-0537/")

base64.urlsafe_b64encode(
message.hexdigest().encode("utf-8")
)[:6].decode("utf-8")

最佳答案

没有有效的功能可以做到这一点。您需要:

  1. 将 URL 存储在数据库中
  2. 生成一个唯一 ID(或者如果您已经拥有该 url,请重新使用该 ID)

关于python-3.x - 生成缩短网址的代码/算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com