標籤:
PHP加密解密也是常有的事,最近在弄相關的東西,發現discuz論壇裡的PHP加密解密處理類代碼,感覺挺不錯,在用的時候,要參考Discuz論壇的passport相關函數,後面我會附上使用方法,先把類代碼帖上來:
| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
<?php/*========================================================= 檔案名稱:cls.sys_crypt.php= 摘 要:php加密解密處理類= 版 本:1.0= 參 考:Discuz論壇的passport相關函數=========================================================*/class SysCrypt {private $crypt_key;// 建構函式public function __construct($crypt_key) { $this -> crypt_key = $crypt_key;}public function php_encrypt($txt) { srand((double)microtime() * 1000000); $encrypt_key = md5(rand(0,32000)); $ctr = 0; $tmp = ‘‘; for($i = 0;$i<strlen($txt);$i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]); } return base64_encode(self::__key($tmp,$this -> crypt_key));}public function php_decrypt($txt) { $txt = self::__key(base64_decode($txt),$this -> crypt_key); $tmp = ‘‘; for($i = 0;$i < strlen($txt); $i++) { $md5 = $txt[$i]; $tmp .= $txt[++$i] ^ $md5; } return $tmp;}private function __key($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr = 0; $tmp = ‘‘; for($i = 0; $i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; } return $tmp;}public function __destruct() { $this -> crypt_key = null;}}?> |
建議將此類儲存檔案名稱為:cls.sys_crypt.php
使用方法說明:
| 123456789 |
<?php//使用前請先引入類檔案,如:include ‘cls.sys_crypt.php‘;$sc = new SysCrypt(‘phpwms‘);$text = ‘110‘;print($sc -> php_encrypt($text));print(‘<br>‘);print($sc -> php_decrypt($sc -> php_encrypt($text)));?> |
本文標題: Discuz論壇寫出的php加密解密處理類(代碼+使用方法)
來自淘代碼轉載請註明
- PHP控制瀏覽器在指定時間內關閉
- PHP 中的大小寫字母轉換函式 首字母變大寫
- PHP+IIS環境下Discuz無法上傳圖片的解決辦法
- php實現MYSQL備份的類庫
- PHP日期操作類代碼-農曆-陽曆轉換、閏年、計算天數等
- Discuz論壇寫出的php加密解密處理類(代碼+使用方法)
- PHP限制網頁只能在內建瀏覽器中查看並顯示
- phpinfo什麼也不顯示 不執行的原因及解決辦法
Discuz論壇寫出的php加密解密處理類(代碼+使用方法)