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阅读 9,567评论 1 27
  • 参考iOS开发探索-Base64编码iOS URL编码&base64编码URL安全的Base64编码,解码 为什么...
    differ_iOSER阅读 6,019评论 5 17
  • Composer 基本用法 // 安装yii程序 composercreate-project--prefer-d...
    热过豆腐干阅读 998评论 0 4
  • 对于大部分人而言,你的现状就是你能力最好的体现,基本不存在怀才不遇的情况。 01 很多时候人们总是抱怨说自己这么优...
    瑚琏少年阅读 323评论 0 0
  • 文|歌 平凡的人,生来注定苦难多磨。世间的人,注定磨难困苦多于快乐幸福。人生实苦,但只要自强不息。 甘肃小男孩魏样...
    是静静呀阅读 161评论 0 0
  • 两江加击,百舸争流,就着高低起伏的地势,依山而上的重重楼房,满城弥漫着麻辣鲜香,这就是重庆的味道。
    MacDong阅读 76评论 0 0
  • 爸,下雪了! 我想讲讲你们的故事…… 吵吵闹闹了一辈子,一度怀疑,父母之间是没有爱情可...
    守望者_accb阅读 3,344评论 11 16