Ha,
es ist so banal. Es genügt ROL/ROR var.c, [Anzahl].
Und ich mach mir so ´ne Rübe. Halt Mist, wenn man keine Ahnung von Assembler hat.
Vielen Dank nochmal.
Gruß Karl
[Edit]
Habe mal eine kleine Verschlüsselungsroutine daraus gebastelt:
Code: Alles auswählen
Procedure.s crypt(text.s, key.s, dir.b)
;Karl 05.10.2006
;Codieren durch Bitrotation nach links und XOR mit dem Schlüssel
;Decodieren durch XOR mit Schlüssel und Bitrotation nach rechts
;dir: decodieren (any) oder codieren (0)
Protected char.c, zeichenKey.c, lang.l, pos.l, zeichen.c, i.l
Protected msg.s
If text And key
lang = Len(key)
For i=1 To Len(text)
char = Asc(Mid(text,i,1))
pos = (i-1) % lang + 1
zeichenKey = Asc(Mid(key, pos, 1))
;eigentliche Codierung/Decodierung
If dir = 0
ROL char, 1
MOV al, zeichenKey
XOR al, char
MOV zeichen, al
Else
MOV al, zeichenKey
XOR al, char
MOV zeichen, al
ROR zeichen, 1
EndIf
msg = msg + Chr(zeichen)
Next
EndIf
ProcedureReturn msg
EndProcedure
Der Charcode des Klartextes wird nach links rotiert und dann mit dem Schlüsselzeichen exklusiv verODERt.
Es ist ein einfacher Mechanismus, genügt aber für kleinere Geschichten, z. B. zum Verhindern, dass der Chef meine E-Mails liest
Gruß Karl