;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
RC4-3鍔犲瘑绠楁硶 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> VB >> 鍔犲瘑瑙e瘑 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

RC4-3鍔犲瘑绠楁硶

鍙戝竷: 2008-7-15 14:52 |  浣滆: 缃戠粶杞浇 |   鏉ユ簮: 缃戠粶杞浇 |  鏌ョ湅: 45娆

鍚嶇О:RC4-3鍔犲瘑绠楁硶

浣滆:Hot Rod,Doornbosch

鎻忚堪:鎴戜粠涓涓綉绔欒幏寰楄繖涓猂C4鐨勫姞瀵嗙畻娉曠▼搴忓苟灏嗗畠鍋氫簡閫傚綋鐨勪慨鏀广傚綋浣犲湪鍔犲瘑鐨勬椂鍊欙紝浣犲彲浠ユ寚瀹氫竴 涓瓧绗︺備絾鏄畠鐨勯熷害寰堟參锛屼簬鏄垜绉昏蛋浜嗙▼搴忎腑Xor鍛戒护锛岄熷害灏卞彉蹇簡锛屼絾鏄畠涓嶈兘搴旂敤浜庢暟鎹簱 涓

杈撳叆:闇瑕佸姞瀵嗙殑瀛楃涓插拰瀵嗙爜[鍔犲瘑(Ture)锛岃В瀵(False)]

杈撳嚭:缁忚繃RC4-3鍔犲瘑鐨勫瓧绗︿覆

娉ㄩ噴锛欽ob True = Encrypt, False = Decrypt

Dim Character() As String * 1

Function RC43(inp As String, key As String, Job As Boolean) As String

Dim S() As Byte

Dim K() As Byte

Dim i As Long

Dim j As Long

Dim temp As Byte

Dim Y As Byte

Dim t As Long

Dim x As Long

Dim Outp As String

Dim r As Integer

Dim TempOutPut As Integer

Dim HoldChar As String

Dim Length As Integer

On Error GoTo ErrorHandler:

HoldChar = " $(%&娉ㄩ噴锛*+,-)./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~€銆侊骏銈π栤攩顏唵姘ㄦ袱鍚圭姱璐偅楠勫澐璋呭獨鐗屼鲸澧掗鑷闂插博閲夌僵妫曚粷鍦拤鍝欏緯娌呭綈鐜锋疀鑵辩湇闀宠辩瘽璨婇棘顙帺顟"

Length = Len(HoldChar)

ReDim Character(Length)

For x = 0 To (Length - 1)

Character(x) = Mid(HoldChar, (x + 1), 1)

Next x

ReDim S(Length)

ReDim K(Length)

For i = 0 To (Length - 1)

S(i) = i

Next

j = 1

For i = 0 To (Length - 1)

If j > Len(key) Then j = 1

K(i) = Ascii(Mid(key, j, 1))

j = j + 1

Next i

j = 0

For i = 0 To (Length - 1)

j = (j + S(i) + K(i)) Mod (Length)

temp = S(i)

S(i) = S(j)

S(j) = temp

Next i

i = 0

j = 0

For x = 1 To Len(inp)

i = (i + 1) Mod (Length)

j = (j + S(i)) Mod (Length)

temp = S(i)

S(i) = S(j)

S(j) = temp

t = (S(i) + (S(j) Mod (Length))) Mod (Length)

Y = S(t)

TempOutPut = (Ascii(Mid(inp, x, 1)))

If Job = False And (TempOutPut - Y) < 0 Then

TempOutPut = ((Length) + (TempOutPut - Y))

ElseIf Job = False Then

TempOutPut = (TempOutPut - Y)

End If

If Job = True Then

Outp = Outp & Character((TempOutPut + Y) Mod (Length))

Else

Outp = Outp & Character((TempOutPut) Mod (Length))

End If

Next

RC43 = Outp

Exit Function

ErrorHandler:

MsgBox "Error # " & vbCrLf & Error & vbCrLf & "Outp = " & Outp & vbCrLf & "Character = " & Character(hold) & vbCrLf & "Ascii = " & hold2 & vbCrLf & "Y = " & Y, , "Error"

End Function

Function Ascii(value As String) As Byte

娉ㄩ噴锛欶ind Value in Character Must be used instead of asc because some characters are eliminated

x = 0

While Not Character(x) = value

x = x + 1

Wend

Ascii = (x)

End Function

TAG: 绠楁硶
鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆