我正在寻找一种在空间方面最有效的网址编码方法。原始二进制(base2)可以用base16表示,它更小并且是url安全的,但base64甚至更有效。但是,通常的base64编码不是url safe ....
那么对于URLS来说,最安全的编码方法是什么?
答案 0 :(得分:2)
这是Base64 URL encoding variant的用途。
它使用相同的标准Base64字母,但+
更改为-
而/
更改为_
。
大多数现代Base64实现都支持这种备用编码。如果你没有,通常只需要在解码之前在Base64输入上进行搜索/替换,或者在将其发送到浏览器之前在输出上进行搜索/替换。
答案 1 :(得分:1)
你可以使用62个字符的代表而不是通常的基数64.这将为你提供像youtube一样的网址: http://www.youtube.com/watch?v=0JD55e5h5JM
如果需要将字符串映射到数据库数字ID:
,则可以使用此页面中提供的PHP函数http://bsd-noobz.com/blog/how-to-create-url-shortening-service-using-simple-php
如果您需要直接将数字ID转换为短URL字符串,请使用此选项: http://kevin.vanzonneveld.net/techblog/article/create_short_ids_with_php_like_youtube_or_tinyurl/