PHP 中实现 RC4加密解密
RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权(缴纳相应费用)的用户才能享受该服务。
RC4于1987年提出,是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥)。RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。
RC4算法的特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在如今技术支持的前提下,当密钥长度为128比特时,用暴力法搜索密钥已经不太可行,所以可以预见RC4的密钥范围任然可以在今后相当长的时间里抵御暴力搜索密钥的攻击。实际上,如今也没有找到对于128bit密钥长度的RC4加密算法的有效攻击方法
/*
* rc4加密算法
* $pwd 密钥
* $data 要加密的数据
*/
function getRc4Encode($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;
}
PHP 中实现 RC4加密解密相关推荐
- RC4加密解密算法原理及实现对文件的加解密
本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...
- RC4加密解密算法123
RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码. RC4是流密码streamcipher中的一 ...
- asp.net中URL参数加密解密过程
asp.net中URL参数加密解密过程 加密代码 public static string Encode(string str, string key){DESCryptoServiceProvide ...
- python 加密解密 rc4_python实现rc4加密解密,base64输出
这里将告诉您python实现rc4加密解密,base64输出,具体实现方法:from Crypto.Cipher import ARC4 as rc4cipher import base64 def ...
- java rc4_java实现的RC4加密解密算法示例
本文实例讲述了java实现的RC4加密解密算法.分享给大家供大家参考,具体如下: 有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个Java 版本的RC4加解密算法. publi ...
- java实现rc4密码_java实现RC4加密解密的实例教程
这篇文章主要介绍了java实现的RC4加密解密算法,结合具体实例形式分析了java RC4加密解密算法的实现与使用技巧,需要的朋友可以参考下 本文实例讲述了java实现的RC4加密解密算法.分享给大家 ...
- go RC4加密解密
总结: 1. RC4加密和解密公用一个函数,即 XORKeyStream() 2. 加密和解密不能用同一个Cipher对象,必须重新生成一个,否则失败 3. XORKeyStream()的两个参数,可 ...
- rc4加密算法 php,php 实现RC4加密解密
RC4算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.RC4算法是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电 ...
- 基于JAVA的RC4加密解密算法循环实现
RC4算法是一种对称加密算法,所谓对称加密,就是加密和解密的过程是一样的,加密和解密均采用同一把密钥.RC4算法的特点是算法简单,执行速度快安全性比较高并且密钥长度是可变的,可变范围为1-256字节( ...
最新文章
- VSCode 安装 Go 插件、gopls 是个什么东东
- Apriori算法通俗详解_fpgrowth2_关联分析评估
- 图论刷水题记录(二)(最短路-----SPFA算法)
- 残差学习,152层网络,微软夺冠2015 ImageNet计算机视觉识别挑战
- 关于KernelFaultCheck启动项
- Codeforces Beta Round #7 C. Line (扩展欧几里德)
- java当数值超过byte时_java试题及答案
- [NOI2007]社交网络
- 程序员眼中的编程语言
- 正则表达式匹配减号_THOR断点教程0910 网球规则1112 后附常用正则表达式数据...
- 吴恩达|机器学习作业8.0.异常检测
- 博为峰JavaEE技术文章 ——MyBatis where标签使用方法
- (转)Flex compc ant 编译
- 【Android学习笔记】【Android学习资源】GitHub上史上最全的Android开源项目分类汇总
- Json解析工具类之GsonUtil类
- 模拟电子技术基础简明课程(第三版)思维导图
- 2022-2027年中国智能化设计行业发展前景及投资战略咨询报告
- 2019腾讯校招客户端方向面经(已拿offer)
- 电信网络性能质量测量
- MySQL面试高薪指南