Deshalb war ich dankbar für die Cäsar Verschlüsselung, die ich hier gefunden habe, sie ist für meine Zwecke völlig ausreichend.
Mit dem Shift Makro kann man die Verschiebung auch noch in Abhängigkeit von der Characterposition durchführen. Damit kann man übrigens auch longs und quads encoden.
Grüße
Peter
Code: Alles auswählen
; ----------------------------------------------------------------------------------------------
; Calculates shift count, CHARPOS: character position to be scrambled
; ----------------------------------------------------------------------------------------------
Macro shift(charpos)
(charpos+23)*17
EndMacro
Structure Storage
xl1.c[0]
EndStructure
; ----------------------------------------------------------------------------------------------
; Scramble contents of Memory
; ----------------------------------------------------------------------------------------------
Procedure.l Scramble(*Source, SourceLen, Key$)
Protected *sptr.Storage,*kptr.Storage,keylen,i,ki
keylen=Len(key$)
*sptr=*Source
*kptr=@key$
For i=0 To SourceLen-1
ki=i%keylen
nxl1=*sptr.Storage\xl1[i]
kxl1=*kptr.Storage\xl1[ki]
nxl1=(nxl1+kxl1+shift(i))%255
*sptr.Storage\xl1[i]=nxl1
Next
ProcedureReturn 0
EndProcedure
; ----------------------------------------------------------------------------------------------
; Unscaramböe contents of Memory
; ----------------------------------------------------------------------------------------------
Procedure.l DeScramble(*Source, SourceLen, Key$)
Protected *sptr.Storage,*kptr.Storage,keylen,i,ki
keylen=Len(key$)
*sptr=*Source
*kptr=@key$
For i=0 To SourceLen-1
ki=i%keylen
nxl1=*sptr.Storage\xl1[i]
kxl1=*kptr.Storage\xl1[ki]
nxl1=(nxl1-kxl1-shift(i))%255
If nxl1<0
nxl1+255
EndIf
*sptr.Storage\xl1[i]=nxl1
Next
ProcedureReturn 0
EndProcedure
; ----------------------------------------------------------------------------------------------
; Main Program
; ----------------------------------------------------------------------------------------------
hideMe$="Rikki Don't Lose That Number"
myKey.s="Steely Dan"
Debug "Original : <"+hideMe$+">"
Debug "Key : <" +mykey+">"
Scramble(@hideMe$,Len(hideMe$),Mykey)
Debug "Scambled : <"+hideMe$+">"
DeScramble(@hideMe$,Len(hideMe$),Mykey)
Debug "De-Scrambled: <"+hideMe$+">"