PHP對字串加密解密的函數_PHP教程

來源:互聯網
上載者:User
加密解密在一個系統中的應用是非常常見的需求,PHP做的網站中,也會經常用到一些加密解密的時候。下面介紹一個比較好用的加密解密函數,收藏下,以後會用得到。

';echo '解密:'.encrypt($token, 'D', 'bkjia');/*********************************************************************    函數名稱:encrypt    函數作用:加密解密字串    使用方法:    加密     :encrypt('str','E','bkjia');    解密     :encrypt('被加密過的字串','D','bkjia');    參數說明:    $string   :需要加密解密的字串    $operation:判斷是加密還是解密:E:加密   D:解密    $key      :加密的鑰匙(密匙);    *********************************************************************/function encrypt($string,$operation,$key='')    {        $key=md5($key);        $key_length=strlen($key);        $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;        $string_length=strlen($string);        $rndkey=$box=array();        $result='';        for($i=0;$i<=255;$i++)        {            $rndkey[$i]=ord($key[$i%$key_length]);            $box[$i]=$i;        }        for($j=$i=0;$i<256;$i++)        {            $j=($j+$box[$i]+$rndkey[$i])%256;            $tmp=$box[$i];            $box[$i]=$box[$j];            $box[$j]=$tmp;        }        for($a=$j=$i=0;$i<$string_length;$i++)        {            $a=($a+1)%256;            $j=($j+$box[$a])%256;            $tmp=$box[$a];            $box[$a]=$box[$j];            $box[$j]=$tmp;            $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));        }        if($operation=='D')        {            if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8))            {                return substr($result,8);            }            else            {                return'';            }        }        else        {            return str_replace('=','',base64_encode($result));        }    }?>

http://www.bkjia.com/PHPjc/752583.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752583.htmlTechArticle加密解密在一個系統中的應用是非常常見的需求,PHP做的網站中,也會經常用到一些加密解密的時候。下面介紹一個比較好用的加密解密函...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.