PHP的加密解密字符串函数建议收藏

程序中经常使用的PHP加密解密字符串函数代码如下:/*********************************************************************函数名称

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

程序中经常使用的PHP加密解密字符串函数

代码如下:

/*********************************************************************
    函数名称:encrypt
    函数作用:加密解密字符串
    使用方法:
    加密     :encrypt('str','E','nowamagic');
    解密     :encrypt('被加密过的字符串','D','nowamagic');
    参数说明:
    $string   :需要加密解密的字符串
    $operation:判断是加密还是解密:E:加密   D:解密
    $key      :加密的钥匙(密匙);
    
http://www.cnblogs.com/roucheng/
*********************************************************************/
    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 '<br />';
    
echo '解密:'.encrypt($token, 'D', 'a');

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120746.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何查看linux系统的内核版本信息_内核版本

    如何查看linux系统的内核版本信息_内核版本查看Linux内核版本和系统版本信息**一、查看Linux内核版本命令(两种方法):1、cat/proc/version2、uname-a二、查看Linux系统版本的命令(3种方法):1、lsb_release-a,即可列出所有版本信息这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。2、cat/etc/redhat-release,这…

    2022年10月13日
    5
  • RFID RC522门禁系统「建议收藏」

    RFID RC522门禁系统「建议收藏」RFIDRC522门禁系统RFIDRC522门禁系统说明:基于51单片机的RFIDRC522门禁系统的主要功能是,在本系统中主要是演示了RFIDRC522门禁系统,在单片机内部的RAM中IDBUFFER中存了学号:1505106001对应16进制就是5bb61851;然后在RFIDRC522开卡系统中,为第一张卡在块地址0x08处,写入了学号,当卡中…

    2022年9月19日
    2
  • pycharm为什么有中文就运行不了_pycharm为什么不能运行

    pycharm为什么有中文就运行不了_pycharm为什么不能运行1.下载并解压JBR(链接:link)我选的是左上角第一个2.替换pycharm安装文件里的jbr文件3.重启pycharm即可JBR链接地址:https://confluence.jetbrains.com/pages/viewpage.action?pageId=173178989

    2022年8月29日
    6
  • 各种卷积操作[通俗易懂]

    各种卷积操作[通俗易懂]各种卷积的作用Filter与kernelfilter是多个kernel的串联,每个kernel分配给输入的特定通道。filter总是比kernel大一维。1.常规卷积运算整个过程可以用下图来概括。假设输入层为一个大小为64x64x3(Width=Height=64,Channel=3)的彩色图片。经过一个包含4个filter(每个filter有3个kernel,kernel_size=3×3)的卷积层,最终输出4个特征图(featuremap),且尺寸与输入层相同。因此卷积层的参数数量可以

    2022年5月28日
    49
  • Win10搭建ftp(含设置用户名和密码)测试成功!!!

    Win10搭建ftp(含设置用户名和密码)测试成功!!!Win10搭建ftp(含设置用户名和密码)测试成功1、打开ftp服务方法:win+R输入control打开控制面板点击程序与功能→启动或关闭Windows功能,选择一下选项,打开ftp服务2、打开ISS管理器方法:win+R输入inetmgr打开iss管理器1)、网站—>添加FTP站点…—>站点信息2)、输入IP和端口号,IP就是自己电脑的ip,端口号最好改一下,21…

    2022年7月15日
    18
  • Visual C++ 2010 Express与Visual C++ 2010有何区别?「建议收藏」

    Visual C++ 2010 Express与Visual C++ 2010有何区别?

    2022年4月3日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号