4

在网页的 URL 中使用 Python UUID 模块生成的值是否安全?Wnat 将这些 ID 用作 URL 的一部分。是否有任何由 Python UUID 生成的不应该出现在 URL 中的非安全字符?

4

3 回答 3

9

始终对将放入 URL 的数据进行 urlencode是一种很好的做法。那么你就不需要关心 UUID 的细节或者它是否会在未来发生变化。

于 2009-02-19T21:51:42.110 回答
6

他们是安全的。有关所有可能的输出格式,请参见此处。它们都是可读的字符串或整数。

于 2009-02-19T21:48:52.040 回答
1

我主要使用 GUID 作为主键,并且经常需要将它们作为 URL 参数传递。

带有破折号和额外字符的十六进制形式对我来说似乎不必要地长。但我也喜欢表示十六进制数字的字符串非常安全,因为它们不包含可能导致 URL 出现问题的字符。

我使用 url 安全的 base64 字符串而不是十六进制。以下是执行此操作的一些 Python 代码。它不符合任何 UUID/GUID 规范(除了具有所需的随机性)。

import base64
import uuid

# get a UUID - URL safe, Base64
def get_a_Uuid():
    r_uuid = base64.urlsafe_b64encode(uuid.uuid4().bytes)
    return r_uuid.replace('=', '')
于 2013-08-29T18:23:37.967 回答