找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 2492|回复: 0

[原生PHP] PHP 中实现 rc4加密解密

[复制链接]

348

主题

940

回帖

91

广播

监察巡站

我是一只咩

积分
443
泰拉
184
水晶
0
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【水贴恶魔】【我很聪明证】【我是小土豪】【宝剑回鞘】【泰拉达人】【奥运选手】【香水有毒】【朋友控】【我很囧证】【萝莉控】【视频爱好者】【潜水高手】【我很萌证】【我是公主】

QQ
发表于 2020-3-3 12:49:25 | 显示全部楼层 |阅读模式
本帖最后由 袖白雪 于 2020-3-3 12:52 编辑

        RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权(缴纳相应费用)的用户才能享受该服务。

        RC4于1987年提出,是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥)。RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。

        RC4算法的特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在如今技术支持的前提下,当密钥长度为128比特时,用暴力法搜索密钥已经不太可行,所以可以预见RC4的密钥范围任然可以在今后相当长的时间里抵御暴力搜索密钥的攻击。实际上,如今也没有找到对于128bit密钥长度的RC4加密算法的有效攻击方法

  1. /*  $pwd 秘钥;

  2. $data  要加密的数据

  3. */

  4. public function rc4($pwd, $data)
  5. {
  6.     $cipher      = '';
  7.     $key[]       = "";
  8.     $box[]       = "";
  9.     $pwd_length  = strlen($pwd);
  10.     $data_length = strlen($data);
  11.     for ($i = 0; $i < 256; $i++) {
  12.         $key[$i] = ord($pwd[$i % $pwd_length]);
  13.         $box[$i] = $i;
  14.     }
  15.     for ($j = $i = 0; $i < 256; $i++) {
  16.         $j       = ($j + $box[$i] + $key[$i]) % 256;
  17.         $tmp     = $box[$i];
  18.         $box[$i] = $box[$j];
  19.         $box[$j] = $tmp;
  20.     }
  21.     for ($a = $j = $i = 0; $i < $data_length; $i++) {
  22.         $a       = ($a + 1) % 256;
  23.         $j       = ($j + $box[$a]) % 256;
  24.         $tmp     = $box[$a];
  25.         $box[$a] = $box[$j];
  26.         $box[$j] = $tmp;
  27.         $k       = $box[(($box[$a] + $box[$j]) % 256)];
  28.         $cipher .= chr(ord($data[$i]) ^ $k);
  29.     }
  30.     return $cipher;
  31. }
复制代码


解密的话重新调用一次该方法即可
[发帖际遇]: 袖白雪 在论坛发帖时没有注意,被小偷偷去了 2 泰拉. 幸运榜 / 衰神榜
有钱的捧个钱场 , 没钱的借钱捧个钱场!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-12-22 23:11 , Processed in 0.109402 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表