php base64_encode URL传输安全

444 阅读1分钟

原因:URL传输会转义base64/,+字符

标准Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的/+字符转义为%xx的形式

function base64_urlsafe_encode($data){
    return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); # 替换+ => -, / => _, 删除结尾 =
}

function base64_urlsafe_decode($data){
    return base64_decode(strtr($data, '-_', '+/'));
}