rc4加密
function
RC4(Expression, Password:
string
):
string
;
var
RB :
array
[
0..255
]
of
Integer
;
X, Y, Z:
longint
;
Key :
array
of
byte
;
ByteArray :
array
of
Word
;
//原来delphi 7下面 是 byte;
Temp:
byte
;
Counter:
integer
;
begin
If
(Length(Expression) =
0
)
then
Exit;
If
(Length(Password) =
0
)
then
Exit;
If
(Length(Password) >
256
)
then
begin
Password := Copy(Password,
1
,
256
);
end
;
SetLength(Key, Length(Password));
for
Counter :=
0
to
Length(Password) -
1
do
begin
Key[Counter] := ord(Password[Counter +
1
]);
end
;
for
X :=
0
to
255
do
begin
RB[X] := X;
end
;
X :=
0
;
Y :=
0
;
Z :=
0
;
for
X :=
0
to
255
do
begin
Y := (Y + RB[X] + Key[X
mod
Length(Password)])
mod
256
;
Temp := RB[X];
RB[X] := RB[Y];
RB[Y] := Temp;
end
;
X :=
0
;
Y :=
0
;
Z :=
0
;
SetLength(ByteArray, Length(Expression));
for
Counter :=
0
to
Length(Expression) -
1
do
begin
ByteArray[Counter] := ord(Expression[Counter +
1
]);
end
;
for
X :=
0
to
Length(Expression)
do
begin
Y := (Y +
1
)
mod
256
;
Z := (Z + RB[Y])
mod
256
;
Temp := RB[Y];
RB[Y] := RB[Z];
RB[Z] := Temp;
ByteArray[X] := ByteArray[X]
xor
(RB[(RB[Y] + RB[Z])
mod
256
]);
end
;
for
Counter :=
0
to
Length(Expression) -
1
do
begin
Result := Result + chr(ord(ByteArray[Counter]));
end
;
end
;
rc4加密的更多相关文章
- RC4加密解密算法
RC4相对是速度快.安全性高的加密算法.在实际应用中,我们可以对安全系数要求高的文本进行多重加密,这样破解就有一定困难了.如下测试给出了先用RC4加密,然后再次用BASE64编码,这样双重锁定,保证数 ...
- [转]RC4加密已不再安全,破解效率极高
原文链接:http://freebuf.com/news/72622.html 原文发表时间:2015.7.17 安全研究人员称,现在世界上近三分之一的HTTPS加密连接可被破解,并且效率极高.这种针 ...
- VB使用API进行RC4加密解密(MD5密钥)
根据网络资料整改,来源未知,已调试通过. Option Explicit Private Declare Function CryptAcquireContext Lib "advapi32 ...
- golang rc4加密
package main import "crypto/rc4" import "fmt" func main() { key := []byte(" ...
- 【java】RC4加密转16进制获取长度为40的不重复优惠码字符串 【未优化版本】
需求:需要一串给各机构独有的优惠码 间接需求:固定长度.不重复.没有规律可循 实现思想如下: 1.首先获取一个UUID 2.去除UUID中的“-” 3.小写转大写 4.获取一个固定长度字符串 5.按照 ...
- java RC4加密和解码
package com.*; public class RC4 { public static String decry_RC4(byte[] data, String key) { if (data ...
- java RC4加密解密
package com.dgut.app.utils; import java.lang.Byte; import java.util.UUID; public class RC4 { public ...
- RC4加密解密
package util; public class RC4Util { public static String decry_RC4(byte[] data, String key) { if (d ...
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...
随机推荐
- nmon for linux
nmon(为Nigel's performance Monitor的简写) for linux工具是 IBM开源的在POWER, x86, x86_64, Mainframe & now AR ...
- Asm Shader Reference --- Shader Model 3.0 part
ps部分 概览 Instruction Set Name Description Instruction slots S ...
- 2013 ACM区域赛长沙 H zoj 3733 (hdu 4798) Skycity
题意:一个圆台,底面和顶面半径分别为R,r,然后高度为H,一共F层,每层高度一样,然后要在每层的天花板上贴方格玻璃,方格玻璃要满足以下几个条件: 方格玻璃面积不能小于S,且方格玻璃要围成一个正多边形, ...
- 如何将SQL Server运行到Windows Azure上
从2012年6月6日开始,Windows Azure上一些强大的新功能现在可用于预览,包括新的Windows Azure虚拟机(VM).其中有关Windows Azure虚拟机最强大的一件事是他们利用 ...
- Storm系列(十九)普通事务ITransactionalSpout及示例
普通事务API详解 1 _curtxid:" + _curtxid 46 + ",_tx.getTransactionId():&qu ...
- 不只是打车软件,中国车主们赋予了Uber更多意义
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 对css中的浮动属性float刨根解牛
1.浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 脱离常规流,由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样. 2.几张图说明浮动常 ...
- [置顶] 程序员必知(三):一分钟知道URI编码(encodeURI)
因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符 ;/?:@&=+$,# 所以 ...
- S2SH商用后台权限系统第二讲
各位博友: 您好!我们今天接着上一讲继续学习S2SH商用后台权限系统,本讲我们重点设计下整个系统所需要的表结构. 用户表:记录用户信息. 角色表:标记用户归属的角色信息. 菜单表:或者叫模块表,记录整 ...
- -bash: ls: command not found
在iMac下ls既然command not found,查找了下 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: 直接在控制台下 expo ...