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;如果两个二进制数的相应 ...
随机推荐
- 多控制器之UIWindow
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- rmi 与 远程代理复习
ref:http://blog.csdn.net/pipisky2006/article/details/7296592 RMI: 远程方法调用,简单来说以前是调用本地对象的方法,现在如果对象在另外一 ...
- Weka-学习
1.在java中使用Weka的eclipse配置方法 http://ianma.wordpress.com/2010/01/16/weka-with-java-eclipse-getting-star ...
- 【原创】MapReduce编程系列之表连接
问题描述 需要连接的表如下:其中左边是child,右边是parent,我们要做的是找出grandchild和grandparent的对应关系,为此需要进行表的连接. Tom Lucy Tom Jim ...
- HW4.2
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- iptables与tcpdump谁更靠近网卡
结论是tcpdump,用tcpdump抓包试试就知道了. // 将所有访问8080端口的包丢弃 iptables -A INPUT -s -j DROP // 查看iptables的策略 iptabl ...
- iOS 使用CLGeocoder获取地理位置
placemark(MKPlacemark类的对象)其实是geocoder(MKReverseGeocoder类的对象)的一个属性.从geocoder里面取placemark这个和直接取placema ...
- 输出数组里面第N大的数
好像有些大公司出过面试题:找出数组里面第N大的数,当然有点变化,但本质部分是这样的. 要求是不能排序,时间复杂度不能超过O(n^2) 思路很多,我暂时就只会快排衍生的那种.如果对快速排序不太熟悉了,建 ...
- 初学ios遇到问题记录01
刚刚接触IOS,花了一段时间看我基础部分的OC后 就想试着弄个小程序,于是看到 http://www.cnblogs.com/LooDo/p/3907064.html博文中的小程序,博主分析的很详细, ...
- dubbox开发rest+json指南【转】
http://dangdangdotcom.github.io/dubbox/rest.html 目录 概述 REST的优点 应用场景 快速入门 标准Java REST API:JAX-RS简介 RE ...