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

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

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

/*  $pwd 秘钥;

$data  要加密的数据

*/

public function rc4($pwd, $data)

{

$cipher = '';

$key[] = "";

$box[] = "";

$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;

}

解密的话重新调用一次该方法即可

注:来源 https://www.cnblogs.com/haoxuanchen2014/p/7783782.html

标签:box,RC4,data,解密,pwd,密钥,php,256

来源: https://www.cnblogs.com/chenjunwu/p/11535164.html

rc4加密算法 php,php 实现RC4加密解密相关推荐

  1. rc4加密算法c语言代码,RC4加密算法C语言实现.docx

    页眉 页眉 PAGE PAGE # / 6 RC4 加密算法 C 语言实现 代码文件名 RC4.cpp Encrypt.h (代码详见后文) 备注:将以上两个文件放在相同的路径(建议不要放在中文路径下 ...

  2. RC4算法原理、Java实现RC4加密算法、DES AES RC4算法比较

    DES AES RC4算法比较 根据密钥类型的不同,加密算法分为对称和非对称两种.对称加密系统是指加密和解密均采用同一把密钥. 对称加密算法是最常用的加密算法,优势在于算法公开,计算量小,加密效率高. ...

  3. aes加密算法python语言实现_python-AES加密解密

    转载https://www.jianshu.com/p/5d27888e7c93#!/xh #!/usr/bin/env python # -*- coding=utf-8 -*- "&qu ...

  4. C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

    一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...

  5. PHP 中实现 RC4加密解密

    RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电 ...

  6. 学习笔记之加密解密,PKI,CA

    1.加密解密 背景:在网络通信中为了达到安全需要,比如通信保密性,保证信息完整性和可用性,这就需要一些技术,下面就来介绍相关的技术 技术包括:加密和解密 服务(用于抵御***的服务,也即是为了上述安全 ...

  7. php+rc4+加密算法,加密解密算法之RC4

    RC4加密算法是一种对称加密算法.所谓对称加密算法,说得直白一点,就是加密与解密的过程一模一样.假设定义RC4的运算过程是rc4(key,data),那么,密文=rc4(key,明文),明文=rc4( ...

  8. php怎样rc4加密,php 实现RC4加密解密

    RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电 ...

  9. RC4加密解密算法123

           RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码. RC4是流密码streamcipher中的一 ...

最新文章

  1. 九章算法班L8 Array Number
  2. 如何提高企业竞争力,科学的组织架构是第一王牌
  3. Silverlight HLSL实现背景滚动
  4. Photoshop 融合属性 Unity Shader
  5. 美国大学生数学建模竞赛 细节问题(23条)汇总!!!
  6. struts2 简单登录校验示例
  7. 解决Apache 服务器不支持FLV视频播放的办法
  8. beego使用php,介绍beego、nginx性能测试实例
  9. NOI.AC#2139-选择【斜率优化dp,树状数组】
  10. 获取freemarker处理后的内容
  11. Android 应用开发(33)---Android程序签名打包
  12. [转]在SSIS中,使用“包配置”时的常见错误与解析
  13. 搭建基于 Nginx 的 RTMP 服务器,并用 ffmpeg 来进行推流和拉流
  14. python 公众号付费视频地址_Python下载微信公众号文章内的视频
  15. puppeteer实现网页截图
  16. java 京东秒杀系统_京东秒杀浪费坑位惩罚你可知道?
  17. 好消息,高清版谷歌卫星地图终于可以正常使用了
  18. matlab三相电路基波图形,非正弦稳态对称三相电路如图a所示。A相电源电压为,其中基波角频率为ω1=1rad/s。负载参数为R=...
  19. python中运用django_【Django】在项目中使用python
  20. 《C++ 笔记》 Part5 C++ 资源大全中文版

热门文章

  1. 16、iOS屏幕等比例适配
  2. 马云:关注饭局没有意义
  3. java实现消息摘要算法
  4. Rust的所有权与可变性
  5. 删除win7下的系统托盘缓存
  6. ctags linux 环境变量,Ubuntu16.04安装配置和使用ctags
  7. 根据时间创建每天重置流水号
  8. 智能路由器开发之OpenWrt简介
  9. 【云计算学习笔记(二十一)】之Neutron子服务详细介绍
  10. 加好友饥荒服务器没有响应,饥荒TGP版常见问题解决方法 打不开礼包领不了怎么办...