http - 如何编码大数字(在 URL 中)?

标签 http url encoding

通常需要在 url 中编码一个大的(例如 128 或 160 位)数字。例如,许多 Web 应用程序使用 md5(random()) 作为 UUID。

如果您需要将该值放入 URL 中,常见的方法是将其编码为十六进制字符串。

但显然十六进制编码并不是一种非常严格的编码。还有哪些其他方法非常适合 URL?

最佳答案

我会使用“URL 和文件名安全”Base 64 字母表。

Base 64 使用两个字符集。

Data: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
URLs: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_

要使用 base 64,您需要将您的值填充为 3 字节长(24 位)的倍数,然后将这 24 位拆分为 4 个 6 位字节。每个 6 位值在我上面给出的字符串中按位置查找。

如果一切顺利,您最终的 base64 值将始终是 4 个字符长的倍数,并解码回 3 个(8 位)字节长的倍数。

根据您使用的语言,其中很多都内置了编码和解码功能。

关于http - 如何编码大数字(在 URL 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497729/

相关文章:

python - 在路由之前修改 flask url

python - 如何使用 Python 3.4(Windows 8)将 utf-8 打印到控制台?

c# - 简单 C# HTTP 服务器上的内容长度偶尔会出错

http - 使用 POST 参数压缩 HTTP 文本

javascript - 如何将 JSON 从浏览器发布到不同的域?

javascript - 如何使用 JavaScript 匹配我所在窗口的当前 URL 中的字符串?

javascript - 使用 Javascript 检索 AppScript 的 URL

使用 Amazon 服务进行 Java Base64 编码

web-services - IE10中查询字符串参数的编码

http - 为什么在 Git Bash 上找不到 ncat?