通常需要在 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/