function decode( $str, $v = "", $k = "p" )
{
    if ( !empty( $str ) && $v == "k" )
    {
        $str = strtr( $str, array( "_p" => "-", "_o" => "+", "_t" => "=" ) );
        $st = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+=";
        $d1 = 0;
        $d2 = 0;
        $d3 = strlen( $str );
        while ( isset( $k[$d2] ) )
        {
            $d1 += ord( $k[$d2++] );
        }
        $d4 = $str[$d1 % $d3];
        $d5 = strpos( $st, $d4 );
        $str = substr_replace( $str, "", $d1 % $d3--, 1 );
        $d6 = $d5;
        $d7 = substr( md5( $k.$d4 ), $d6 % 8, $d1 % 8 + 16 );
        $d8 = "";
        $d9 = 0;
        $d10 = 0;
        $d3 = strlen( $str );
        $d11 = strlen( $d7 );
        $d2 = 0;
        for ( ; $d2 < $d3; ++$d2 )
        {
            $d10 = $d10 == $d11 ? 0 : $d10;
            $d9 = strpos( $st, $str[$d2] ) - $d6 - ord( $d7[$d10++] );
   while ( $d9 < 0 )
            {
                $d9 += 64;
            }
            $d8 .= $st[$d9];
        }
        return base64_decode( $d8 );
    }
 }这是一段解码的php代码,现在需要逆向算出$str,想了一整天卡在$d4 这边的,希望高手们帮帮忙哈