当前位置: 首页 > news >正文

PHP RC4 加解密类

<?php
//RC4算法
//对称加密,加解密使用同一套函数
function rc4 ($pwd, $data)//$pwd密钥 $data需加密字符串
{
    $key[] ="";
    $box[] ="";
    $cipher='';
    $pwd_length = strlen($pwd);
    $data_length = strlen($data);
    for ($i = 0; $i < 256; $i++)
    {
        $key[$i] = ord($pwd[$i % $pwd_length]);
        $box[$i] = $i;
    }
    for ($j = $i = 0; $i < 256; $i++)
    {
        $j = ($j + $box[$i] + $key[$i]) % 256;
        $tmp = $box[$i];
        $box[$i] = $box[$j];
        $box[$j] = $tmp;
    }
    for ($a = $j = $i = 0; $i < $data_length; $i++)
    {
        $a = ($a + 1) % 256;
        $j = ($j + $box[$a]) % 256;
        $tmp = $box[$a];
        $box[$a] = $box[$j];
        $box[$j] = $tmp;
        $k = $box[(($box[$a] + $box[$j]) % 256)];
        $cipher .= chr(ord($data[$i]) ^ $k);
    }
    return $cipher;
}

源码转自:http://www.nexiao.com/wangzhan/kaifa/159851.html

相关文章:

  • Python 采集相关设定
  • 从MTK的scat文件谈ROM和RAM的分配,管理和问题解决
  • MTK资源管理和问题解决
  • 基于树莓派使用DuerOS的笔记,待续
  • 树莓派、百度DuerOS等RAW格式的镜像浏览、提取文件的方法
  • 几个常见的C语言面试题分析
  • Linux定期备份mysql
  • MTK基于基站和小区的定位技术研究
  • 第一次交叉编译基于群晖 213j(CPU:Armada 370)的iperf过程
  • MTK界面设计中消除PNG图片的杂色背景
  • 知道这20个正则表达式,能让你少写1,000行代码
  • MTK一些有用的层函数
  • 基于SWOOLE的分布式SOCKET消息服务器架构
  • MTK的铃声修改与替换
  • 基于SWOOLE的高可用分布式SOKET服务器系统搭建V2.0
  • [笔记] php常见简单功能及函数
  • 08.Android之View事件问题
  • codis proxy处理流程
  • Effective Java 笔记(一)
  • egg(89)--egg之redis的发布和订阅
  • HTML-表单
  • javascript从右向左截取指定位数字符的3种方法
  • jdbc就是这么简单
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • python学习笔记 - ThreadLocal
  • Service Worker
  • Spark学习笔记之相关记录
  • SQLServer之创建显式事务
  • Terraform入门 - 3. 变更基础设施
  • 如何优雅地使用 Sublime Text
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 学习Vue.js的五个小例子
  • 【干货分享】dos命令大全
  • ​马来语翻译中文去哪比较好?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #QT项目实战(天气预报)
  • #职场发展#其他
  • (安卓)跳转应用市场APP详情页的方式
  • (定时器/计数器)中断系统(详解与使用)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十六)串口UART
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)jdk与jre的区别
  • (转)大道至简,职场上做人做事做管理
  • .gitignore
  • .libPaths()设置包加载目录
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .vimrc 配置项
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Autowired自动装配