• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP数组加密解密

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

应用场景:给前台cookie加密

使用环境:tp5

 

使用方法

以下代码在extend\Lib\Haxi.php

<?php
namespace lib;

use think\Controller;


class Haxi extends Controller{
    //加密函数(参数:数组,返回值:字符串)
    public static $key_t = "sjiofssdsfd";//设置加密种子
    public static function encrypt($cookie_array){
        $txt = serialize($cookie_array);
        srand();//生成随机数
        $encrypt_key = md5(rand(0,10000));//从0到10000取一个随机数
        $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(Haxi::key($tmp,Haxi::$key_t));
    }
     
    //解密函数(参数:字符串,返回值:数组)
    public static function decrypt($txt){
        $txt = Haxi::key(base64_decode($txt), Haxi::$key_t);
        $tmp = '';
        for($i = 0;$i < strlen($txt); $i++) {
            $md5 = $txt[$i];
            $tmp .= $txt[++$i] ^ $md5;
        }
        $tmp_t = unserialize($tmp);
        return $tmp_t;
    }
     
    public static 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;
    }
}   

 

后台使用

//先引入
use Lib\Haxi;

加密数组$arr
====================
 $Haxi = new Haxi();
 cookie('shoppinglist', $Haxi->encrypt($arr));

解密数据$_POST['list'] ========================= public function shoppinglist() { $Haxi = new Haxi(); $a = $Haxi->decrypt($_POST['list']); //解密 var_dump($a); }

 

附上几个其他加密的方式,只不过是字符串https://www.cnblogs.com/liiu/p/10136767.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
phpcurl模拟get,post提交,上传文件,下载文件发布时间:2022-07-10
下一篇:
PHP数字价格格式化,保留两位小数发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap