php base64 encode decode

    const CUSTOME_TABLE  = "0KajD7AZcF2QnPr5fwiHRNygmupUTIXx69BWb-hMCGJo_V8Eskz1YdvL34letqSO";
    const STANDARD_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /**
     * encode 
     * 
     * @param mixed $str 
     * @static
     * @access public
     * @return void
     */
    public static function encode($str) {
        return strtr(rtrim(base64_encode($str), "="), self::STANDARD_TABLE, self::CUSTOME_TABLE);
    }

    /**
     * decode 
     * 
     * @param mixed $str 
     * @static
     * @access public
     * @return void
     */
    public static function decode($str) {
		$str = strtr($str, self::CUSTOME_TABLE, self::STANDARD_TABLE); //转换指定字符
		$intLen = strlen($str);
		$intSuffix = $intLen & 3;  //&是数学运算”按位与“,参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。
		if ($intSuffix > 0) {
			$str = $str . substr("====", $intSuffix); //substr — 返回字符串的子串
		}

		return base64_decode($str);
    }
posted @ 2020-04-27 16:56  段佳伟  阅读(425)  评论(0)    收藏  举报