PHP實(shí)現(xiàn)加強(qiáng)版加密解密類(lèi)實(shí)例
更新時(shí)間:2015年07月29日 10:57:58 作者:DDIAN
這篇文章主要介紹了PHP實(shí)現(xiàn)加強(qiáng)版加密解密類(lèi),實(shí)例分析了php加密解密的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了PHP實(shí)現(xiàn)加強(qiáng)版加密解密類(lèi)。分享給大家供大家參考。具體如下:
<?php class Ender{ private $enkey;//加密解密用的密鑰 private $rep_char='#'; //替換加密后的base64字符串中的=,因?yàn)?在有些場(chǎng)合是禁止使用的, //這里可以用一個(gè)允許的字符作為替換。 //構(gòu)造參數(shù)是密鑰 public function __construct($key=''){ if(!$key){ $this->enkey=$key; } } //設(shè)置密鑰http://blog.ddian.cn public function set_key($key){ $this->enkey=$key; } private function keyED($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); $ctr++; } return $tmp; } //加密字符串 public function encrypt($txt,$key='') { if(!$key){ $key=$this->enkey; } srand((double)microtime()*1000000); $encrypt_key = md5(rand(0,32000)); $ctr=0; $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)) $ctr=0; $tmp.= substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); $ctr++; } $r=base64_encode($this->keyED($tmp,$key)); $r=str_replace('=',$this->rep_char,$r); return $r; } //解密字符串 public function decrypt($txt,$key='') { $txt=str_replace($this->rep_char,'=',$txt); $txt=base64_decode($txt); if(!$key){ $key=$this->enkey; } $txt = $this->keyED($txt,$key); $tmp = ""; for ($i=0;$i<strlen($txt);$i++) { $md5 = substr($txt,$i,1); $i++; $tmp.= (substr($txt,$i,1) ^ $md5); } return $tmp; } }
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- php實(shí)現(xiàn)rc4加密算法代碼
- PHP實(shí)現(xiàn)的DES加密解密類(lèi)定義與用法示例
- 基于php實(shí)現(xiàn)的php代碼加密解密類(lèi)完整實(shí)例
- PHP加密解密類(lèi)實(shí)例代碼
- PHP加密解密類(lèi)實(shí)例分析
- php寫(xiě)的AES加密解密類(lèi)分享
- 一個(gè)PHP針對(duì)數(shù)字的加密解密類(lèi)
- 支持中文的php加密解密類(lèi)代碼
- PHP實(shí)現(xiàn)的AES加密、解密封裝類(lèi)與用法示例
- php實(shí)現(xiàn)的rc4加密解密類(lèi)定義與用法示例
相關(guān)文章
PHP Memcached應(yīng)用實(shí)現(xiàn)代碼
在很多場(chǎng)合,我們都會(huì)聽(tīng)到 memcached 這個(gè)名字,但很多同學(xué)只是聽(tīng)過(guò),并沒(méi)有用過(guò)或?qū)嶋H了解過(guò),只知道它是一個(gè)很不錯(cuò)的東東。這里簡(jiǎn)單介紹一下,memcached 是高效、快速的分布式內(nèi)存對(duì)象緩存系統(tǒng),主要用于加速 WEB 動(dòng)態(tài)應(yīng)用程序。2010-02-02php中DOMDocument簡(jiǎn)單用法示例代碼(XML創(chuàng)建、添加、刪除、修改)
PHP寫(xiě)XML方法很多,這里主要介紹一下DOMDocument的用法,跟 JS大體上相同,其實(shí)非常簡(jiǎn)單。2010-12-12PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作示例
這篇文章主要介紹了PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作,結(jié)合實(shí)例形式分析了swoole的進(jìn)程管理process模塊實(shí)現(xiàn)進(jìn)程間通信相關(guān)操作技巧,需要的朋友可以參考下2020-03-03php編寫(xiě)的mysqli增刪改查數(shù)據(jù)庫(kù)操作類(lèi)示例
這篇文章主要為大家介紹了php編寫(xiě)的mysqli增刪改查數(shù)據(jù)庫(kù)操作類(lèi)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08