Base64编码URL参数注意

Base64编码后的字符,常用来作为URL参数传递。但有些情况下,编码后可能出现字符+/,在URL中就不能直接作为参数。

一般需要做URL Safe编码,就是把字符+/分别变成-_
`

截取Yii框架实现代码。


    /**
     * Encodes string into "Base 64 Encoding with URL and Filename Safe Alphabet" (RFC 4648)
     *
     * > Note: Base 64 padding `=` may be at the end of the returned string.
     * > `=` is not transparent to URL encoding.
     *
     * @see https://tools.ietf.org/html/rfc4648#page-7
     * @param string $input the string to encode.
     * @return string encoded string.
     * @since 2.0.12
     */
    public static function base64UrlEncode($input)
    {
        return strtr(base64_encode($input), '+/', '-_');
    }

    /**
     * Decodes "Base 64 Encoding with URL and Filename Safe Alphabet" (RFC 4648)
     *
     * @see https://tools.ietf.org/html/rfc4648#page-7
     * @param string $input encoded string.
     * @return string decoded string.
     * @since 2.0.12
     */
    public static function base64UrlDecode($input)
    {
        return base64_decode(strtr($input, '-_', '+/'));
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,171评论 1 32
  • 参考iOS开发探索-Base64编码iOS URL编码&base64编码URL安全的Base64编码,解码 为什么...
    differ_iOSER阅读 7,879评论 5 17
  • Composer 基本用法 // 安装yii程序 composercreate-project--prefer-d...
    热过豆腐干阅读 1,279评论 0 4
  • 对于大部分人而言,你的现状就是你能力最好的体现,基本不存在怀才不遇的情况。 01 很多时候人们总是抱怨说自己这么优...
    瑚琏少年阅读 848评论 0 0
  • 两江加击,百舸争流,就着高低起伏的地势,依山而上的重重楼房,满城弥漫着麻辣鲜香,这就是重庆的味道。
    MacDong阅读 206评论 0 0