2015年,我们在青云平台上实现了“百度云观测”应用。青云应用本质上是一个iframe,在向iframe服务方发送的请求中会携带一些数据,青云平台会使用Base64 URL
对这些数据进行编码,其提供的编码解码算法示例如下:
// php版本
function base64_URL_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
function base64_URL_decode($data) {
return base64_decode(str_pad(strtr($data, '-_', '+/'),
strlen($data) % 4, '=', STR_PAD_RIGHT));
}
可以看出,Base64 URL
是标准Base64编码的一个变种,分别用 -
、_
替换标准Base64编码结果中的 +
、 /
,并删除结果最后的 =
。
在实现 “百度云观测” 青云应用时,我在想:
- 为什么要使用Base64编码?
- Base64编码算法是什么样的?
本文是围绕这两个问题思考和实践的结果。
我认为 ...