PHP SSO for ASP service
<pre><code> function SSO($key,$uid){
$lenth=32;
$aZ09 = array_merge(range('A', 'Z'), range('a', 'z'),range(0, 9));
$randphrase ='';
            for($c=0;$c &lt; $lenth;$c++) {
               $randphrase .= $aZ09[mt_rand(0,count($aZ09)-1)];
            } 
            //echo "Key: ".$key."&lt;br/&gt;";
            //echo "Phrase: ".$randphrase."&lt;br/&gt;";
            //Append key onto phrase end
            $randkey=$randphrase.$key;
            // SHA512 Hash
            $toencode= utf8_encode($randkey);
            // Pass 3rd, optional parameter as TRUE to output raw binary data
            $output = hash("sha512", $toencode, true);
            //base 64 encode the hash binary data
            $sso = base64_encode($output);
            $length = mb_strlen($sso);
            $characters = 2;
            $start = $length - $characters;
            $last2 = substr($sso , $start ,$characters); 
            // Yes, Strip the extra ==
            if($last2 == "==")
                            {$ssocode = substr($sso,0,-2);}
            // No, just pass the value to the next step
            else{$ssocode=$sso;}
            // Prepend the random phrase to the encrypted code.
            $ssocode = $randphrase.$ssocode;
            //echo "SSO: ".$ssocode."&lt;br/&gt;";

            //Use first 22 charecters of random.
            $shortphrase=substr($randphrase,0,22);
            //Append uid &amp; key onto shortened phrase end
            $uidv=$uid.$shortphrase.$key;
            // SHA512 Hash
            $idencode= utf8_encode($uidv);
            // Pass 3rd, optional parameter as TRUE to output raw binary data
            $idoutput = hash("sha512", $idencode, true);
            // Base64 Encode of hash binary data
            $idssoe = base64_encode($idoutput);
            //Determine if we need to strip the zeros
            $idlength = mb_strlen($idssoe);
            $idcharacters = 2;
            $idstart = $idlength - $idcharacters;
            $idlast2 = substr($idssoe , $idstart ,$idcharacters); 
            if($idlast2 == "==")
                            {$ssouidv = substr($idssoe,0,-2);}
            // No, just pass the value to the next step
            else{$ssouidv=$idssoe;}
            //echo "SSOID: ".$ssouidv;

            return array($ssocode, $ssouidv);
</code></pre>

<p>}
Solved...</p>
