Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在URL';中使用Python UUID模块生成的值是否安全;什么是网页?_Python_Url_Uuid - Fatal编程技术网

在URL';中使用Python UUID模块生成的值是否安全;什么是网页?

在URL';中使用Python UUID模块生成的值是否安全;什么是网页?,python,url,uuid,Python,Url,Uuid,在网页的URL中使用Python UUID模块生成的值安全吗?Wnat将这些ID用作URL的一部分。Python UUID生成的任何非安全字符都不应该出现在URL中吗?它们是安全的。有关所有可能的输出格式,请参阅。它们都是可读的字符串或整数。最好的做法是始终对要放入URL的数据进行URL编码。那么您就不必关心UUID的具体情况,也不必担心它将来是否会改变。我主要使用GUID作为主键,通常需要将它们作为URL参数传递 十六进制格式,加上破折号和额外的字符,对我来说似乎太长了。但我也喜欢表示十六进制

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

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

最好的做法是始终对要放入URL的数据进行URL编码。那么您就不必关心UUID的具体情况,也不必担心它将来是否会改变。

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

十六进制格式,加上破折号和额外的字符,对我来说似乎太长了。但我也喜欢表示十六进制数字的字符串非常安全,因为它们不包含可能导致URL问题的字符

我使用url安全的base64字符串代替十六进制。下面是一些实现这一点的Python代码。但它不符合任何UUID/GUID规范(除了所需的随机性)


这取决于“urlencode”的含义,因为URL的不同部分的编码不同-请看,您可以使用uuid.uuid4()执行大致相同的操作。hexhex更易于使用,但字符串也更长一些。
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('=', '')