PHP的加密解密字符串函数

转载 2015年11月18日 15:38:03
/*********************************************************************
    函数名称:encrypt
    函数作用:加密解密字符串
    使用方法:
    加密     :encrypt('str','E','nowamagic');
    解密     :encrypt('被加密过的字符串','D','nowamagic');
    参数说明:
    $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));
        }
    }

$id = 132;

token=encrypt(id, ‘E’, ‘a’);

echo ‘加密:’.encrypt($id, ‘E’, ‘a’);
echo ‘
’;

echo ‘解密:’.encrypt($token, ‘D’, ‘a’);

PHP一组可逆加密解密算法

对于大部分密码加密,我们可以采用md5、sha1等方法。 可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。 对于需要还原的信息,则需要采用可逆的加密解密算法。下面一组PHP函数是实现此加...
  • aoyoo111
  • aoyoo111
  • 2014年01月28日 23:39
  • 5426

PHP的几种加密解密算法

PHP的几种加密解密算法 一、开发环境 1、Windows+Apache+MySQL+PHP的环境。 2、文本编辑器:Sublime。 二、主要技术 PHP 三、实验内容与结果 本文主要...
  • mico_cmm
  • mico_cmm
  • 2016年11月10日 21:46
  • 3871

PHP使用3DES算法加密解密字符串

3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计...
  • loophome
  • loophome
  • 2016年07月21日 20:06
  • 7963

php 自带加密、解密函数

php 自带的加密函数  不可逆的加密函数为:md5()、crypt() md5() 用来计算 MD5 哈稀。语法为:string md5(string str); crypt() 将字符串用 ...
  • jiangisking
  • jiangisking
  • 2017年02月18日 12:32
  • 2121

php自带加密解密函数

不可逆的加密函数为:md5()、crypt() md5() 用来计算 MD5 哈稀。语法为:string md5(string str); crypt() 将字符串用 UNIX 的标准加密 DES...
  • ownfire
  • ownfire
  • 2011年11月01日 09:57
  • 22853

PHP自定义字符串加密与解密

  • 2014年04月16日 11:34
  • 1KB
  • 下载

PHP 字符处理 加密解密 函数收集

AddSlashes: 字符串加入斜线。 bin2hex: 二进位转成十六进位。 Chop: 去除连续空白。 Chr: 返回序数值的字符。 chunk_split: 将字符串分...
  • whatday
  • whatday
  • 2017年03月04日 11:45
  • 427

php字符串加解密

第一步:先创建一个工具类
  • baronyang
  • baronyang
  • 2014年07月04日 15:21
  • 1619

PHP的加密解密字符串函数

/********************************************************************* 函数名称:encrypt 函数作用:加密解...
  • tashanhongye
  • tashanhongye
  • 2015年11月18日 15:38
  • 226

PHP的几个常用加密函数

在网站的开发过程中,常常需要对部分数据(如用户密码)进行加密,本文主要介绍PHP的几个常见的加密函数 MD5加密: string md5 ( string $str [, bool $...
  • u014316363
  • u014316363
  • 2015年02月10日 16:51
  • 634
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP的加密解密字符串函数
举报原因:
原因补充:

(最多只允许输入30个字)