在 URL 中传递 base64 编码的字符串
通过 GET 参数传递原始 base64 编码字符串是否安全?
通过 GET 参数传递原始 base64 编码字符串是否安全?
还有其他 base64 规范。(有关详细信息,请参阅此处的表格)。但从本质上讲,您需要65个字符来编码:26个小写字母+ 26个大写字母+ 10个数字= 62个。
您还需要两个 ['+', '/'] 和一个填充字符 '='。但是它们都不是URL友好的,所以只需为它们使用不同的字符,你就可以了。上图中的标准字符是 ['-', '_'],但您可以使用其他字符,只要您以相同的方式解码它们,并且不需要与他人共享。
我建议只写你自己的助手。从 php 手册页上的评论中base64_encode:
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '._-');
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '._-', '+/='));
}
不,您需要对其进行url编码,因为base64字符串可以包含“+”,“=”和“/”字符,这些字符可能会改变数据的含义 - 看起来像一个子文件夹。
有效的 base64 字符如下所示。
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=