RC4-File
Verfasst: 09.10.2007 23:17
Habe den RC4 code mal angepasst aus dem Purearea Archiv,
einmal benutzt verschlüsselt es die Datei beim zweitemal wieder Entschlüsseln.
Zum Entschlüsseln muss das InFile angepasst werden.
einmal benutzt verschlüsselt es die Datei beim zweitemal wieder Entschlüsseln.
Zum Entschlüsseln muss das InFile angepasst werden.
Code: Alles auswählen
Procedure Mod(a,b)
ProcedureReturn a-(a/b)*b
EndProcedure
Procedure.l RC4Mem(Mem.l, memLen.l, key.s)
;RC4Mem(*MemoryBuffer.l, MomeryLength.l, Key.s)
Dim S.w(255)
Dim K.w(255)
i.l=0: j.l=0: t.l=0: x.l=0
temp.w=0: y.w=0
Outp.s=""
For i = 0 To 255
S(i) = i
Next
j = 1
For i = 0 To 255
If j > Len(key)
j = 1
EndIf
K(i) = Asc(Mid(key, j, 1))
j = j + 1
Next i
j = 0
For i = 0 To 255
j = Mod(j + S(i) + K(i), 256)
temp = S(i)
S(i) = S(j)
S(j) = temp
Next i
i = 0
j = 0
For x = 0 To memLen-1
i = Mod(i + 1, 256)
j = Mod(j + S(i),256)
temp = S(i)
S(i) = S(j)
S(j) = temp
t = Mod(S(i) + Mod(S(j), 256) , 256)
y = S(t)
PokeB(Mem+x, PeekB(Mem+x)!y)
Next
ProcedureReturn Mem
EndProcedure
Procedure rc4filecrypt(InFile.s,OutFile.s,key.s)
If OpenFile(0,InFile)
flength=Lof(0)
*filemem=AllocateMemory(flength)
For i.l=0 To flength-1
PokeB(*filemem+i,ReadByte(0))
Next
CloseFile(0)
EndIf
RC4Mem(*filemem,flength,key)
If CreateFile(0,OutFile)
For i.l=0 To flength-1
WriteByte(0,PeekB(*filemem+i))
Next
CloseFile(0)
ProcedureReturn 1
Else
CloseFile(0)
ProcedureReturn 0
EndIf
EndProcedure