PHP中的des加密类
生活随笔
收集整理的這篇文章主要介紹了
PHP中的des加密类
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
<?php
/*** DES加密類** 本類用于實現(xiàn)des算法的加密及解密** 調(diào)用方法* $des = new DES('key值'); // key只能是八位* $xx = $des->decrypt('xxxxx'); // 解密* $aa = $des->encrypt('xxxaa'); // 加密*/
class CI_Des {public $key='';//key長度8例如:1234abcdfunction __construct($params) {$key = empty($params[0]) ? '': $params[0];$this->key = $key;}function encrypt($encrypt) {$encrypt = $this->pkcs5_pad($encrypt);$passcrypt = @mcrypt_encrypt(MCRYPT_DES, $this->key, $encrypt, MCRYPT_MODE_CBC);return strtoupper(bin2hex($passcrypt));}function decrypt($decrypt) {$decoded = pack("H*", $decrypt);$decrypted = @mcrypt_decrypt(MCRYPT_DES, $this->key, $decoded, MCRYPT_MODE_CBC);return $this->pkcs5_unpad($decrypted);}function pkcs5_unpad($text) {$pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) {return $text;}if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) {return $text;}return substr($text, 0, -1 * $pad);}function pkcs5_pad($text) {$len = strlen($text);$mod = $len % 8;$pad = 8 - $mod;return $text.str_repeat(chr($pad),$pad);}//截中文英文子串function msubstr($str, $start, $len) {$tmpstr = "";$strlen = $start + $len;for($i = 0; $i < $strlen; $i++) {if(ord(substr($str, $i, 1)) > 0xa0) {$tmpstr .= substr($str, $i, 2);$i++;} else$tmpstr .= substr($str, $i, 1);}return $tmpstr;}
}
?
總結(jié)
以上是生活随笔為你收集整理的PHP中的des加密类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP中文件操作相关
- 下一篇: 动态规划算法php,php算法学习之动态