在URL';中使用Python UUID模块生成的值是否安全;什么是网页?
在网页的URL中使用Python UUID模块生成的值安全吗?Wnat将这些ID用作URL的一部分。Python UUID生成的任何非安全字符都不应该出现在URL中吗?它们是安全的。有关所有可能的输出格式,请参阅。它们都是可读的字符串或整数。最好的做法是始终对要放入URL的数据进行URL编码。那么您就不必关心UUID的具体情况,也不必担心它将来是否会改变。我主要使用GUID作为主键,通常需要将它们作为URL参数传递 十六进制格式,加上破折号和额外的字符,对我来说似乎太长了。但我也喜欢表示十六进制数字的字符串非常安全,因为它们不包含可能导致URL问题的字符 我使用url安全的base64字符串代替十六进制。下面是一些实现这一点的Python代码。但它不符合任何UUID/GUID规范(除了所需的随机性)在URL';中使用Python UUID模块生成的值是否安全;什么是网页?,python,url,uuid,Python,Url,Uuid,在网页的URL中使用Python UUID模块生成的值安全吗?Wnat将这些ID用作URL的一部分。Python UUID生成的任何非安全字符都不应该出现在URL中吗?它们是安全的。有关所有可能的输出格式,请参阅。它们都是可读的字符串或整数。最好的做法是始终对要放入URL的数据进行URL编码。那么您就不必关心UUID的具体情况,也不必担心它将来是否会改变。我主要使用GUID作为主键,通常需要将它们作为URL参数传递 十六进制格式,加上破折号和额外的字符,对我来说似乎太长了。但我也喜欢表示十六进制
这取决于“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('=', '')